首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Linq中怎么取出每个用户的符合条件的第一条记录

2011-12-24 
Linq中如何取出每个用户的符合条件的第一条记录?Linq中如何取出每个用户的符合条件的第一条记录?数据库有

Linq中如何取出每个用户的符合条件的第一条记录?
Linq中如何取出每个用户的符合条件的第一条记录?

数据库有以下几个字段:
主键     用户id       名次       时间                       是否正常
1           100             10             20101012                   1
2           100             20             20101009                   1
3           200             11             20101011                   1
4           100             18             20101008                   1
5           300             2               20101010                   1
6           300             15             20101013                   1
7           300             16             20101002                   0
我要得到这样的结果:
100       18         20101008
200       11         20101011
300       2           20101010
请问这个用Linq怎么实现??

[解决办法]
根据时间排序
 db.Tb
.OrderByDescending(x=> x.时间) 
.group ...
.FirstOrDefault();
[解决办法]
什么条件啊??
[解决办法]

C# code
  static void Main(string[] args)        {            var list = GetData();            var query =                    from u in list                    where u.IsNormal == "1"                    group u by u.UserId into g                    orderby g.Key                    from u2 in g                    where u2.Date == g.Min(u3 => u3.Date)                    select u2;            foreach (var u in query)                Console.WriteLine("{0}, {1}, {2}", u.UserId, u.Date, u.Rank);                        Console.Read();        }        static IEnumerable<User> GetData()        {            yield return new User { UserId = "100", Rank = "10", Date = "20101012", IsNormal = "1" };            yield return new User { UserId = "100", Rank = "20", Date = "20101009", IsNormal = "1" };            yield return new User { UserId = "200", Rank = "11", Date = "20101011", IsNormal = "1" };            yield return new User { UserId = "100", Rank = "18", Date = "20101008", IsNormal = "1" };            yield return new User { UserId = "300", Rank = "2", Date = "20101010", IsNormal = "1" };            yield return new User { UserId = "300", Rank = "15", Date = "20101013", IsNormal = "1" };            yield return new User { UserId = "300", Rank = "16", Date = "20101002", IsNormal = "0" };        } 


[解决办法]
还少个User的类定义。

C# code
    public class User    {        public string UserId { get; set; }        public string Rank { get; set; }        public string Date { get; set; }        public string IsNormal { get; set; }    }
[解决办法]
使用Where()和First()运算符的组合运算,在Where()运算符中指定查询条件。第二种做法就是只使用First()运算符,将查询条件作为参数传递给此方法。有疑问,继续留言!
[解决办法]
C# code
 public class User { public string UserId { get; set; } public string Rank { get; set; } public string Date { get; set; } public string IsNormal { get; set; } }
[解决办法]
XXX类型 en=lst.First();
好象成吧.

[解决办法]
我也有点犯晕 来看看
[解决办法]
学习了 先分组 后按时间排序
[解决办法]
入门学linq看这里:http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx
[解决办法]
linq是什么??

热点排行