属性或方法
属性或方法 | 用途 |
---|
Count或Count() | 用于获取数组中当前元素数量 |
Item() | 通过指定索引获取或设置元素。对于List类来说,它是一个索引器。 |
Add() | 在List中添加一个对象的公有方法 |
AddRange() | 公有方法,在List尾部添加实现了ICollection接口的多个元素 |
Insert() | 在List内插入一个元素 |
InsertRange() | 在List内插入一组元素 |
Clear() | 在List内移除所有元素 |
Remove() | 移除与指定元素匹配的第一个元素 |
RemoveAt() | 移除指定索引的元素 |
RemoveRange() | 移除指定范围的元素 |
CopyTo() | 重载的公有方法,把一个List拷贝到一维数组内 |
Contains() | 测试一个元素是否在List内 |
Exists() | 测试一个元素是否在List内 |
Find() | 查找并返回List内的出现的第一个匹配元素 |
FindAll() | 查找并返回List内的所有匹配元素 |
IndexOf() | 重载的公有方法,查找并返回每一个匹配元素的索引 |
LastIndexOf() | 重载的公有方法,,查找并返回最后一个匹配元素的索引 |
GetEnumerator() | 重载的公有方法,返回一个用于迭代List的枚举器 |
Getrange() | 拷贝指定范围的元素到新的List内 |
BinarySearch() | 重载的公有方法,用于在排序的List内使用二分查找来定位指定元素. |
Reverse() | 反转List内元素的顺序 |
Sort() | 对List内的元素进行排序 |
ToArray() | 把List内的元素拷贝到一个新的数组内 |
trimToSize() | 将容量设置为List中元素的实际数目 |
分组 去重
var groupModel= listModel.GroupBy(m => new { m.Code, m.Name}).Distinct().Select(t => new Model
{
Code= t.Key.Code,
Name = t.Key.Name
}).ToList();
List<Model> result = list.ToLookup(item => item.name).ToDictionary(item => item.Key, item => item.First()).Values.ToList();
list = list.Where((x, i) => list.FindIndex(n => n.Id == x.Id) == i).ToList();
List<Model> result = list.GroupBy(item => item.Name).Select(item => item.First()).ToList();
List<string> result = list.Select(it => it.Name).Distinct().ToList();
筛选
var selectList = list.Where(x=> x.Code == item.Code && x.Name== item.Name).ToList(),
赋值
list.ForEach(x => x.Name= value);
list.All(x => { x.Name= value;return true; });
list.Select(x => { x.Name= value;return true; });
list.FindAll(a => a.Id== item.Id).ForEach(a => a.Name= item.Name)
List转DataTabel
DataTable dt = ListToDataTable(list);
public static DataTable ListToDataTable<T>(List<T> list)
{
DataTable dt = new DataTable("tableName");
foreach (var item in list.FirstOrDefault().GetType().GetProperties())
dt.Columns.Add(item.Name);
foreach (var item in list)
{
DataRow value = dt.NewRow();
foreach (DataColumn dtColumn in dt.Columns)
{
int i = dt.Columns.IndexOf(dtColumn);
if (value.GetType().IsPrimitive)
value[i] = item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item);
else
value[i] = JsonConvert.SerializeObject(item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item));
}
dt.Rows.Add(value);
}
return dt;
}