linq 怎么得到某数据集里相同的字段个数

linq 怎么得到某数据集里相同的字段个数,第1张

使用LINQ获取列表中的某个字段值,下面以获取员工列表中的编号字段为例子。

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6849698.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-29
下一篇2023-03-29

发表评论

登录后才能评论

评论列表(0条)

    保存