我有一个可查询的具有"代码"字段的实体
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".此代码字段中还有任意数量的".".
如果您需要更多信息,请与我们联系.
我的代码看起来像这样:
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; 当宣布时.这可以应用于下面的第一行吗?
这是我目前用于打破双循环并继续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#中执行此操作的最佳方法是什么?
我一直在做上面这个例子的时间最长,并觉得必须有一个更好的方法 - 在这一点上几乎感到羞愧.
谢谢
我想将元组转换IEnumerable为List<string>.例如,如果有
public static IEnumerable<Tuple<string, Type>> GetWord(String formula)
Run Code Online (Sandbox Code Playgroud)
如何将枚举直接传递给新的List<string>??? 的构造函数?
谢谢!
使用表达式主体属性,我们可以创建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 。虽然我看到周围有评论说底层管道只创建一个命令......
有没有人对此有明确的答案?
是否有任何可能转换FileInfo到IEnumerable<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) 当我在Release中运行以下内容时,按下CTRL + C成功终止应用程序.
在Debug中运行时,CTRL + C在while下面的循环中按下挂起.
为什么?有没有解决的办法?
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) 我有以下循环运行从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循环?
我正在努力理解使用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) 所以我试图让这个代码测试用户输入的单词中是否有某些字母,并确定该用户输入中有多少该特定字母。
目前aCounter,bCounter如果我输入这个词,我会得到 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# ×10
biginteger ×1
icommand ×1
ienumerable ×1
linq ×1
loops ×1
mvvm-light ×1
parallel.for ×1
sql ×1