2008-11-06 118 views
47

可以说我有一个这样的数组:你如何索引字段添加到LINQ结果

string [] Filelist = ... 

我想创建一个LINQ的结果,其中每个条目是这样的阵列中的位置:

var list = from f in Filelist 
    select new { Index = (something), Filename = f}; 

指数为0的第一个项目,1 2次,等

我应该用什么索引表达式=?

回答

113

请勿使用查询表达式。使用the overload of Select which passes you an index

var list = FileList.Select((file, index) => new { Index=index, Filename=file }); 
+0

如何在SQL语法做到这一点? – toddmo 2017-04-30 20:15:40

+0

@toddmo:“在SQL语法中”是否指“使用LINQ查询表达式”?如果是这样,你不能。如果你的意思是“在SQL本身”,那么我不知道 - 我怀疑有这样做的不便携方式。 – 2017-05-01 06:07:11

0
string[] values = { "a", "b", "c" }; 
int i = 0; 
var t = (from v in values 
select new { Index = i++, Value = v}).ToList();