码迷,mamicode.com
首页 > 其他好文 > 详细

LinQ使用积累

时间:2017-07-20 17:21:38      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:join   lan   console   datatable   方法   eva   res   组成   tin   

1. 用Linq查询datatable中的行是否重复
intcount1 = (from p indt.AsEnumerable() select p).Distinct().Count();
intcount2 = (from p indt.AsEnumerable() select p).Count();
if(count1 < count2)
{
  MessageBox.Show("重复");
}

 

2. 用Linq查询List中的行是否重复
List<int> Numbers = newList<int> { 1, 2, 3, 7, 31 };
Console.WriteLine(Numbers.Distinct().Count() == Numbers.Count);
Console.ReadKey();

 

3. 用Linq查找重复值的方法
Dictionary plants = new Dictionary() {
  {1,"Speckled Alder"},
  {2,"Apple of Sodom"},
  {3,"Hairy Bittercress"},
  {4,"Pennsylvania Blackberry"},
  {5,"Apple of Sodom"},
  {6,"Water Birch"},
  {7,"Meadow Cabbage"},
  {8,"Water Birch"}
};
//find dictionary duplicate values.
var duplicateValues = plants.GroupBy(x => x.Value).Where(x => x.Count() > 1);

 

4. 用Linq根据需要重组新的实体并输出
A. 使用单一对象列表重组新的对象列表:
var srcObjectList = 原本实例对象列表.ToList()
var newObjectList = from a in srcObjectList select new
{
  新对象成员1 = srcObjectList.属性1,
  新对象成员2 = srcObjectList.属性2,
  新对象成员3 = srcObjectList.属性3,
  新对象成员4 = srcObjectList.属性4,
  新对象成员5 = srcObjectList.属性2 + srcObjectList.属性3
}
新对象列表(newObjectList)使用旧对象列表(srcObjectList)的部分属性,重组成新的对象列表。

B. 使用两个不同对象列表属性重组新的对象列表:
var srcObjectList1 = 原本实例对象列表1.ToList()
var srcObjectList2 = 原本实例对象列表2.ToList()
var newObjectList = from a in srcObjectList1 join b in srcObjectList2 on a.属性 equals b.属性 select new
{
  新对象成员1 = a.属性1,
  新对象成员2 = b.属性2,
  新对象成员3 = a.属性2,
  新对象成员4 = b.属性3,
  新对象成员5 = b.属性4,
  新对象成员6 = a.属性3,
  新对象成员7 = a.属性4 + b.属性1
}
新对象列表(newObjectList)使用两个旧对象列表(srcObjectList1、srcObjectList2)的部分属性,重组成新的对象列表。

LinQ使用积累

标签:join   lan   console   datatable   方法   eva   res   组成   tin   

原文地址:http://www.cnblogs.com/MatrixBlogs/p/7211842.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!