2012-02-22 44 views
0

我想弄清楚是否有可能在linq中运行总计。我正在反对一个列表,而不是sql。我已经在SQL中完成了运行列表,但是如果可以在linq中执行,则无法找到任何内容。在linq运行计数

col1 col2 col3 
1  a  afafaf 
2  b  adfali 
3  c  adfiaj 
4  d  adfi 

感谢 香

~~~~部分加入下面 我不能让你给调换的例子..所以我就给什么,我试图做一个不同的例子。我试图违背(JobS)列表。乔布斯在其中有Job的实例,Job中有职责和类的属性。所以我想要一个linq声明。如果你知道如何在VB中做到这一点... ...我几乎不可能要求更多。 谢谢 香农

+0

计数什么?列表中的元素数量? – 2012-02-22 16:43:05

+0

no ..一个运行计数,其中第1行回到1,第2行回到2.运行计数中的数据不引用列表中的任何数据,只是该行所在的行号在列表中.. – jvcoach23 2012-02-22 18:07:09

回答

0

对不起,如果我理解你错了,但从你的描述我认为你可能有兴趣在IndexOf方法。你通过行值,它会返回该行的表内的索引/位置:

样品:

class Program 
{ 
    static void Main(string[] args) 
    { 
     List<int> ints = new List<int>(); 

     ints.AddRange(Enumerable.Range(1, 10)); 

     int index = ints.IndexOf(4); 

     //Prints 3 
     Console.WriteLine(index); 

     Console.ReadKey(); 
    } 
} 
2

您可以在SELECT语句中增加一个索引:

var data = new string[][] 
{ 
    new string[] {"a", "afafaf"}, 
    new string[] {"b", "adfali"}, 
    new string[] {"c", "adfiaj"}, 
    new string[] {"d", "adfi"} 
}; 

int rowCount = 1; 
var table = data 
    .Select(d => new { col1 = rowCount++, col2 = d[0], col3 = d[1] }) 
    .ToList();