+ -
当前位置:首页 → 问答吧 → 使用linq进行排序 条件判断 分组求和 希望高手写个简单的例子

使用linq进行排序 条件判断 分组求和 希望高手写个简单的例子

时间:2011-12-25

来源:互联网

使用linq进行排序 条件判断 分组求和(三个条件都需要) 希望高手写个简单的例子 我是新手 请大家多多帮助 谢谢

作者: lx920503   发布时间: 2011-12-25

public class Test
  {
  public string Name{get;set;}
  public int Num{ get; set; }
  }

 protected void Click(object sender, EventArgs e)
  {
  List<Test> list = new List<Test>();
  list.Add(new TestData() { Name = "A", Num=50});
  list.Add(new TestData() { Name = "A", Num=50 });
  list.Add(new TestData() { Name = "A",Num=50 });
  list.Add(new TestData() { Name = "B",Num=50});
  list.Add(new TestData() { Name = "C", Num=50 });
  list.Add(new TestData() { Name = "C", Num=50 });
   
  var query = from l in list
  group l by new { l.Name, l.Num} into g
  select new
  {
  Name = g.Key.Name,
  Num= g.Sum(a => a.Num)
  };
  string result = "";
  foreach (var q in query)
  {
   
  }
   
  }

作者: wuyq11   发布时间: 2011-12-25

C# code

void Main()
{
     List<Test> list = new List<Test>();
  list.Add(new TestData() { Name = "A", Num=50});
  list.Add(new TestData() { Name = "A", Num=50 });
  list.Add(new TestData() { Name = "A",Num=70 });
  list.Add(new TestData() { Name = "B",Num=50});
  list.Add(new TestData() { Name = "C", Num=50 });
  list.Add(new TestData() { Name = "C", Num=50 });
    
  var query = from l in list
  where l.Num==50   //条件判断
  group l by l.Name into g  //分组
  orderby g.Count() descending//排序
  select new
  {
  Name = g.Key,
  Num= g.Sum(a => a.Num) //f求和
  };
  string result = "";
  foreach (var q in query)
  {
    
  }
}
public class Test
  {
  public string Name{get;set;}
  public int Num{ get; set; }
  }


作者: q107770540   发布时间: 2011-12-25

补充一下问题吧
如:有一个Mark表 
  Id Score CreatTime  
  1 5 2011-11-1
  1 5 2011-11-1
  1 5 2011-11-1
  1 5 2011-11-1
  1 5 2011-11-1
  1 5 2011-11-1  
  2 6 2011-11-2
  3 8 2011-11-3
  4 6 2011-11-4
  4 6 2011-11-4
  4 6 2011-11-4
  4 6 2011-11-4
  、、、 、、、 、、、、
  20 7 2011-12-25

 还有一个User表
现在想做的是 根据user表中的Id,查询出该登录用户最近10次的成绩总和(相同时间的成绩加在一起) 
不知道我描述是否清楚 请大家谅解一下哈

作者: lx920503   发布时间: 2011-12-25

哈哈 督查来了 我刚刚看了一下关于linq的帖子 基本上都有督查的影子 谢谢哟 麻烦帮助一下

作者: lx920503   发布时间: 2011-12-25

var query=(from u in User
  join m in Mark
  on u.Id equals m.Id 
  where u.Id==1 
  group m by m.CreateTime into g
  select g.Sum(t=>t.Score)).Take(10).Sum();
   

你最好帖一下你想要的结果 或SQL语句

作者: q107770540   发布时间: 2011-12-25

同一时间会对应多个题目,也就是某个时间做的一套试题(试题中有多个题目,但多个题目对应的时间是相同的,因为是同一套题)
现在先要的结果是:取得最近10次所做试题的总分的一个集合
不知道这样描述是否清楚

作者: lx920503   发布时间: 2011-12-25