c# linq 汇总

Posted huang34

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# linq 汇总相关的知识,希望对你有一定的参考价值。

例子:List<string> list = new List<string>();

list.Add("1 a");
list.Add("2 b");
list.Add("3 c");
list.Add("4 d");
list.Add("5 e");

添加元素:

一:List.Add(T item)    如  list.Add("5 e");
二: List. AddRange(IEnumerable<T> collection)   添加一组元素  

     string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" };
     list.AddRange(temArr);

三:Insert(int index, T item);    在index位置添加一个元素  如:list.Insert(0, "1 aa");

删除元素:

一: List. Remove(T item) 删除一个值
    如:list.Remove("Hunter");
二: List.RemoveAt(int index); 删除下标为index的元素
   如:mList.RemoveAt(0);
三: List.RemoveRange(int index, int count);
  从下标index开始,删除count个元素
   如:list.RemoveRange(3, 2);

 

判断某个元素是否在该List中:list集合与某元素相等

List. Contains(T item)  如:list.Contains("1 a") 结果true,  list.Contains("1") 结果false

List.Find  搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的第一个匹配元素  返回T

Predicate是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 true。当前 List 的元素被逐个传递给Predicate委托,并在 List 中向前移动,从第一个元素开始,到最后一个元素结束。当找到匹配项时处理即停止。

Predicate 可以委托给一个函数或者一个拉姆达表达式:
委托给拉姆达表达式:
E.g.:
string listFind = mList.Find(name => //name是变量,代表的是mList
{ //中元素,自己设定
if (name.Length > 3)
{return true;}return false;});

List.FindLast 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的最后一个匹配元素。
public T FindLast(Predicate<T> match);

List.TrueForAll方法:  确定是否 List 中的每个元素都与指定的谓词所定义的条件相匹配。
 public bool TrueForAll(Predicate<T> match);

List.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素。
public List<T> FindAll(Predicate<T> match);

如list.FindAll(o => o.Split(‘ ‘)[0] == "2" && o.Split(‘ ‘)[0] == "1")  返回值 list[0]="1 a",list[1]="2 b"

List.Any方法 List.Contains  List.Exists
性能方面:Contains 优于 Exists 优于 Any

Capacity 是列表之前设定的容量值;
Count 是实际的元素个数。
Capacity 总是大于或等于 Count,当 Count 超过 Capacity 后,又自动扩容以装下新的元素。

以上是关于c# linq 汇总的主要内容,如果未能解决你的问题,请参考以下文章

常用LINQ关键字用法汇总

linq 里按月查询汇总

Linq学习(零)-错误汇总

[.NET] EF LINQ 按时间对数据分类汇总

EF(Linq)框架使用过程中的小技巧汇总 dbfunctions

初识Linq to Entity