2013-02-07 33 views
3

字符串[]列出 的第一要素我有字符串数组列表: List<string[]> myList; 获得使用LINQ

有没有什么办法让一个字符串数组所有元素串[0]? 喜欢清单myList中以字符串[]其中元件是myList中[串[0]]

我想it's类似变种结果=从myList中X。取(0)选择X

和问题2 ) 是否有任何方式将字符串[]转换为字符串[1,]没有for循环? 现在我做:

for (int i = 0; i < arr.Length; i++) 
     range[0, i] = arr[i]; 

我需要 “这个语法”,因为I'm导出到Excel列。我需要一个对象[,]来执行range.set_Value(Type, object[,])

+0

你试过了什么?另外,您应该一次提出一个问题。如果您有两个不同的问题,请提出两个不同的问题。 – svick

回答

6
string[] result = myList.Select(arr => arr.FirstOrDefault()).ToArray(); 

这是你在找什么?

Take(n)只返回一个枚举最多n元素,所以这显然是错误的。

+1

我以为'arr [0]'很好。在这里使用'FirstOrDefault()'看不出有什么好处 – paul

+0

@paul如果没有元素,FirstOrDefault将返回null,而不是去_BANG!_。 –

+1

我想这取决于@Alberto他是否会想要它爆炸!在这里,还是他的应用程序应该勇敢地继续与一个意外的空数据集 – paul

1

从我从你的问题收集,这应该足够了:

string[] result = (from item in myList select item.FirstOrDefault()).ToArray()); 
1

对于第一部分;

var temp = myList.Select(q => q.FirstOrDefault()); 

对于第二部分; 我不认为有直接Linq语句将单维数组转换为多维数组。

+0

这将返回一个'IQueryable ',据我所知。 –

+0

@GrantThomas为什么会那样做?除非你以'IQueryable'开始,或者显式调用'AsQueryable()',否则LINQ将不会返回。 – svick