Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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# 林奇;最大值_C#_Linq_Linq To Sql - Fatal编程技术网

C# 林奇;最大值

C# 林奇;最大值,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我必须查询这个表: symbol time ------ ---------- aaa 2013-04-18 09:10:28.000 bbb 2013-04-18 09:10:27.000 aaa 2013-04-18 09:10:27.000 bbb 2013-04-18 09:10:26.000 我需要一行用于所有具有最大时间值的不同符号。如何编写linq查询 提前感谢,按符号分组行,然后从每个组项中选择

我必须查询这个表:

symbol    time
------    ----------
aaa       2013-04-18 09:10:28.000    
bbb       2013-04-18 09:10:27.000    
aaa       2013-04-18 09:10:27.000    
bbb       2013-04-18 09:10:26.000
我需要一行用于所有具有最大时间值的不同符号。如何编写linq查询

提前感谢,

按符号分组行,然后从每个组项中选择最长时间(表是上下文中的数据库表名称):

与方法语法相同:

Table.GroupBy(r => r.symbol)
     .Select(g => g.OrderByDescending(x => x.time).First());
试试这个

var q = MyTable.GroupBy(x => x.symbol )
               .Select(g => g.OrderByDescending(i => i.time).First());
或者像这样使用max

 var data = from r in MyTable
                   group r by r.symbol into g
                   select new { name= g.Key, data= g.Max(a=>a.time) };
我真的会用

void Main()
{
    var set = new [] {
        new Foo{A = "aaa", B = 1},
        new Foo{A = "bbb", B = 2},
        new Foo{A = "aaa", B = 3},
        new Foo{A = "bbb", B = 4},
    };

    var result = from x in set
                group x.B by x.A into g
                select new {id = g.Key, biggest = g.Max()};

    Console.WriteLine(result);
}

可以将lambda表达式与Linq一起使用-

var result= (from li in List.Distinct().OrderByDescending(x => x.time)
                       select li).FirstOrDefault();

如果您使用
GroupBy
可以确保至少有一行,因此您可以使用
First
而不是
FirstOrDefault
@TimSchmelter同意,但我不确定它是否有效(它经常抱怨
First()
),所以我决定将
FirstOrDefault()
留在这里:),但是,好的,因此它与SQL无关,我将更新即使Linq到实体也应该支持
第一个
:(
最后一个
/
最后一个默认值
不受支持)@TimSchmelter好吧,可能现在已经修复了。很高兴知道:)
var result= (from li in List.Distinct().OrderByDescending(x => x.time)
                       select li).FirstOrDefault();