如果在C#中将具有Int和String类型值混合的String数组转换为int,则返回true

vic*_*age 0 .net c# linq arrays split

我有一个字符串,我拆分,看看是否有任何拆分值是字符串.如果是这样我想要返回true,否则为false.

string words = "1 2 c 5";
Run Code Online (Sandbox Code Playgroud)

简单的方法,我可以通过转换为int数组然后并排比较值.

int[] iar = words.Split(' ').Select(s => int.TryParse(s, out n) ? n : 0).ToArray();
Run Code Online (Sandbox Code Playgroud)

任何人都可以推荐更好的方法吗

cuo*_*gle 7

您可以直接检查而不使用Split:

var result = words.Any(c => !char.IsWhiteSpace(c) 
                         && !char.IsDigit(c));
Run Code Online (Sandbox Code Playgroud)

或使用Split:

var result = words.Split()
                  .Any(w => w.Any(c => !char.IsDigit(c)));
Run Code Online (Sandbox Code Playgroud)

关键是你可以char.IsDigit用来检查而不是使用int.Parse或int.TryParse.