Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该使用var或toArray()将System.Collections.Generic.IEnumerable转换为string[]_C# - Fatal编程技术网

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();