
1、使用Select方法
[csharp] view plain copy
List<Emplayee>emplayeeList = GetEmplayeeList() //获取员工信息列表
int[] empIds = emplayeeList.Select(a =>a.Id).ToArray() //获取员工编号数组
2、使用ForEach方法
[csharp] view plain copy
List<Emplayee>emplayeeList = GetEmplayeeList() //获取员工信息列表
string empIds = ""
emplayeeList.ForEach(a =>empIds += a.Id + ",")
empIds = empIds.TrimEnd(',')
Console.WriteLine(empIds) //输出:1,2,3
其它代码:
[csharp] view plain copy
/// <summary>
/// 员工信息类
/// </summary>
public class Emplayee
{
/// <summary>
/// 编号
/// </summary>
public int Id { getset}
/// <summary>
/// 姓名
/// </summary>
public string Name { getset}
}
[csharp] view plain copy
/// <summary>
/// 获取员工信息列表
/// </summary>
/// <returns></returns>
public static List<Emplayee>GetEmplayeeList()
{
List<Emplayee>emplayeeList = new List<Emplayee>()
Emplayee emplayee1 = new Emplayee() { Id = 1, Name = "张三" }
Emplayee emplayee2 = new Emplayee() { Id = 2, Name = "李四" }
Emplayee emplayee3 = new Emplayee() { Id = 3, Name = "王五" }
emplayeeList.Add(emplayee1)
emplayeeList.Add(emplayee2)
emplayeeList.Add(emplayee3)
return emplayeeList
}
你可以使用实现一个IEqualityComparer,然后通过Distinct在返回唯一值的时候排个序。或者这样试试看
var data = mydata.Distinct().ToList().Select( o =>new { ID = o.ID,taskID = mydata.Where( p =>p.ID = o.ID).Max(p =>p.taskID)})
纯手敲,不保运行,理解含义
//导入linq命名空间,然后distinct一下就可以了.关键代码如下:
usingSystem.Linq
//比如,list实例为list
varobj=list.Distinct()
//或者麻烦点要根据list的字段xxx过滤就是
varobj_1=frompinlistselectp.xxxdistinct()
扩展资料
list()函数与array()类似,只是它可以在一次 *** 作中从一个数组内提取多个值,同时为多个变量赋值。其形式如下:
voidlist(mixed?)从数据库或文件中提取信息时,这种构造尤其有用。例如,假如你希望格式化并输出从一个文本,文件中读取信息。文件的每一行都包含用户信息,如姓名、职业和喜爱的颜色,每一项用竖线分隔。典型的一行如下所示:
NinoSanzi|profesionalgolfer|green
可以通过一个简单的循环使用list()来读取每一行,将各部分数据赋给变量,按照需要格式化并输出数据。
参考资料来源:百度百科:list
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)