小编AAA*_*ddd的帖子

在LINQ to Entities中,您如何订购如下?

我有一个可查询的具有"代码"字段的实体

1.1.1,
1.1.2,
1.1.3,
1.1.4,
...,
1.1.10,
1.1.11
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我.OrderBy(x=> x.Code)对查询执行操作时,它按以下顺序返回

1.1.1,
1.1.10,
1.1.11,
1.1.2,
1.1.3,
...
Run Code Online (Sandbox Code Playgroud)

如何使对象列表按代码字段排序,用"."分隔,并作为每个部分之间的整数?

这是客户数据,所以我不能在1个数字前面加上"0".此代码字段中还有任意数量的".".

如果您需要更多信息,请与我们联系.

c# sql linq entity-framework

4
推荐指数
2
解决办法
216
查看次数

我可以使用get =>表示法进行空检查吗?

我的代码看起来像这样:

public static DataManager _db;
public static DataManager DB
{
   get
   {
      if (_db == null)
      {
          _db = new DataManager();
      }
      return _db;
   }
}
Run Code Online (Sandbox Code Playgroud)

我在整个代码中使用了get =>和set =>但我不知道如何在这里做.有人能给我这方面的建议吗?

我也见过人们使用{get; 当宣布时.这可以应用于下面的第一行吗?

c#

4
推荐指数
1
解决办法
65
查看次数

如何在C#中有效地摆脱双循环?

这是我目前用于打破双循环并继续DoStuff()的方法:

foreach (var enemyUnit in nearbyEnemyUnits) {
    var skip = false;
    foreach (var ownUnit in ownUnits) {
        if (ownUnit.EngagedTargetTag == enemyUnit.tag) {
            skip = true;
            break;
        }
    }

    if (skip) continue;

    DoStuff(enemyUnit);
}
Run Code Online (Sandbox Code Playgroud)

整个"定义一个临时的布尔变量以检查跳过"对我来说似乎非常hacky.在像Go这样的语言中,我可以使用标签来突破循环,甚至可以使内部循环成为clojure的一部分.在C#中执行此操作的最佳方法是什么?

我一直在做上面这个例子的时间最长,并觉得必须有一个更好的方法 - 在这一点上几乎感到羞愧.

谢谢

c# loops

4
推荐指数
1
解决办法
82
查看次数

将Cuple IEnumerable转换为C#中的List <string>

我想将元组转换IEnumerableList<string>.例如,如果有

public static IEnumerable<Tuple<string, Type>> GetWord(String formula) 
Run Code Online (Sandbox Code Playgroud)

如何将枚举直接传递给新的List<string>??? 的构造函数?

谢谢!

c# ienumerable

4
推荐指数
1
解决办法
160
查看次数

在 Expression-Bodied Properties 中调用新的 RelayCommand (ICommand) 是否安全

使用表达式主体属性,我们可以创建RelayCommand如下

public RelayCommand Command => _command ?? (_command = new RelayCommand(CommandExecute));
Run Code Online (Sandbox Code Playgroud)

然而这也是可能的

public RelayCommand Command => new RelayCommand(CommandExecute);
Run Code Online (Sandbox Code Playgroud)

显然,每次getter调用该属性时,这都会创建一个新的 RelayCommand 。虽然我看到周围有评论说底层管道只创建一个命令......

有没有人对此有明确的答案?

c# icommand mvvm-light

3
推荐指数
1
解决办法
336
查看次数

是否有可能将`FileInfo`转换为`IEnumerable <FileInfo>`

是否有任何可能转换FileInfoIEnumerable<FileInfo>,因为我需要发送IEnumerable<FileInfo>作为参数传递给外部库?

var latestFile = new DirectoryInfo(filePath).EnumerateFiles(fileType).Select(fl =>
    {
        fl.Refresh();
        return fl;
    }).OrderByDescending(fi => fi.LastWriteTimeUtc).FirstOrDefault();

IEnumerable<FileInfo> Y = latestFile;
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
2
解决办法
184
查看次数

在调试模式下给出ctrl + c时,控制台应用程序不会退出

当我在Release中运行以下内容时,按下CTRL + C成功终止应用程序.

在Debug中运行时,CTRL + Cwhile下面的循环中按下挂起.

为什么?有没有解决的办法?

static void Main(string[] args)
{
    while (true)
    {
        // Press CTRL + C...
        // When running in Release, the app closes down
        // When running in Debug, it hangs in here
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
1
解决办法
175
查看次数

Parallel.For与BigInteger计算输出不同于For循环

我有以下循环运行从base95到base10的转换.我正在使用几千位数字,因此需要BigIntegers.inst是base95字符串.

Parallel.For(0, inst.Length, x => 
     {
        result += BigInteger.Pow(95, x) * (inst[x] - 32);
     });
Run Code Online (Sandbox Code Playgroud)

如果我使用大约200个字符或更少的base95字符串,它可以很好地工作,并输出与普通for循环相同的结果.

但是,一旦我开始增加base95字符串的大小,就会抛出并行输出.我需要使用1500多个字符的base95字符串,甚至高达30000.常规for循环可以很好地计算结果.

什么可能导致这个问题?有没有比Parallel.For循环更快的for循环?

c# biginteger parallel.for

3
推荐指数
1
解决办法
205
查看次数

为每个冒号":"拆分长字符串,并按位置获取该行的索引

我正在努力理解使用Split方法接收我想要的文本我从用户接收长注册字符串,我试图通过冒号分割它,:并为每个冒号发现我想得到所有文本,直到/n在行

我从用户收到的字符串格式如下:

"Username: Jony \n
 Fname: Dep\n
 Address: Los Angeles\n
 Age: 28\n
 Date: 11/01:2001\n"
Run Code Online (Sandbox Code Playgroud)

这是我的approche,直到现在并没有说明它是如何工作的,并没有找到问题similler像我的问题

str = the long string

List<string> names = str.ToString().Split(':').ToList<string>();
names.Reverse();

var result = names[0].ToString();
var result1 = names[1].ToString();

Console.WriteLine(result.Remove('\n').Replace(" ",string.Empty));
Console.WriteLine(result1.Remove('\n').Replace(" ",string.Empty));
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
1
解决办法
166
查看次数

有没有办法修改这个循环?

所以我试图让这个代码测试用户输入的单词中是否有某些字母,并确定该用户输入中有多少该特定字母。

目前aCounterbCounter如果我输入这个词,我会得到 4 for和 4 for "aabb"

我如何做到这一点,例如,如果有 2 个 a 并且它已经测试了2 次,则测试字母的循环会"a"停止"a"

static int aCounter, bCounter;

public static void Main (string[] args)
{
    Console.Write("Enter the secret word: ");
    string word = Console.ReadLine();

    for(int i = 0; word.Length > i; i++)
    {       
        if (word.Count(letter => letter == 'a') > 0)
        {
            Console.WriteLine("\nThe word contains a");
            aCounter++;
        }

        if (word.Count(letter => letter == 'b') > 0)
        {
            Console.WriteLine("\nThe word …
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
1
解决办法
61
查看次数