C# 我应该使用var或toArray()将System.Collections.Generic.IEnumerable转换为string[]
以下哪种方法是最好的,为什么C# 我应该使用var或toArray()将System.Collections.Generic.IEnumerable转换为string[],c#,C#,以下哪种方法是最好的,为什么 string[] doubleArray = Regex .Split(strValue, @"[^0-9\.]+") .Where(c => c != "." && c.Trim() != "") .ToArray(); // here i have used toarray var doubleArray = Regex .Split(strValue, @"[^0-9\.]+") .Where(c => c
string[] doubleArray = Regex
.Split(strValue, @"[^0-9\.]+")
.Where(c => c != "." && c.Trim() != "")
.ToArray(); // here i have used toarray
var doubleArray = Regex
.Split(strValue, @"[^0-9\.]+")
.Where(c => c != "." && c.Trim() != ""); // and here i have used var
.字符串[]和IEnumerable之间没有隐式转换 如果您想要一个字符串数组,您应该选择
var doubleArray = Regex.Split(strValue, @"[^0-9\.]+").Where(c => c != "." && c.Trim() != "").ToArray();
或
请注意,在这两种情况下,.ToArray用于枚举IEnumerable并从中获取数组
在这两种情况下,基础类型都是string[],因为var关键字。关键字var只是语法糖,编译器使用示例字符串[]中的数据类型,我个人只在使用verylongclassnames使其更可读时才使用它。非常相关,可能与@user3129097重复检查我的最新编辑,在我添加var关键字文档链接的地方,它确实充分解释了您的问题。如果你认为我的答案很有帮助,。我个人只在使用了很长的类名以使其更具可读性时才使用它。你能给我一个例子吗?我注意到了另一件事,第二件事是当它返回到.where Regex.SplitstrValue,@[^0-9\]+。其中c=>c!&&c、 修剪!=;对于doubleArray.AsQueryable{Console.writelinedublearray[i];}中的每个var项,我认为它需要列出,请建议应该使用什么?
string[] doubleArray = Regex.Split(strValue, @"[^0-9\.]+").Where(c => c != "." && c.Trim() != "").ToArray();