当前位置: 首页 > wzjs >正文

鹤岗哈尔滨网站建设长沙网络营销学校

鹤岗哈尔滨网站建设,长沙网络营销学校,wordpress网页图片加载很慢,设计公司官网需要发什么目录 一、示例代码 二、示例输出 三、注意雷点 四、全字段去重封装方法 1.封装 2.示例 一、示例代码 using System; using System.Collections.Generic; using System.Linq;public class Program {public static void Main(){// 创建一些示例实体对象var people new Li…

目录

一、示例代码

二、示例输出

三、注意雷点

四、全字段去重封装方法

1.封装

2.示例


一、示例代码

using System;
using System.Collections.Generic;
using System.Linq;public class Program
{public static void Main(){// 创建一些示例实体对象var people = new List<Person>{new Person { Name = "Alice", Age = 30, City = "New York" },new Person { Name = "Bob", Age = 25, City = "Los Angeles" },new Person { Name = "Alice", Age = 30, City = "New York" },//重复的new Person { Name = "Charlie", Age = 35, City = "Chicago" },new Person { Name = "Alice", Age = 28, City = "San Francisco" }};// 1. 单字段去重var uniqueNameFields = people.DistinctBy(p =>p.Name).ToList();Console.WriteLine("指定字段(Name)去重结果,重复则保留第一条:");foreach (var person in uniqueNameFields){Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, City: {person.City}");}// 2. 多字段去重var uniqueNameAgeFields = people.DistinctBy(p => new { p.Name, p.Age }).ToList();Console.WriteLine("\n指定字段(Name, Age)去重结果,重复则保留第一条:");foreach (var person in uniqueNameAgeFields){Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, City: {person.City}");}//3.全字段去重// 通过 GroupBy 按 Name 和 Age 字段去重var uniquePeople = people.DistinctBy(p => new { p.Name, p.Age, p.City }).ToList();Console.WriteLine("\n全字段去重:");foreach (var person in uniquePeople){Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, City: {person.City}");}}
}public class Person
{public string Name { get; set; }public int Age { get; set; }public string City { get; set; }
}

二、示例输出

指定字段(Name)去重结果,重复则保留第一条:
Name: Alice, Age: 30, City: New York
Name: Bob, Age: 25, City: Los Angeles
Name: Charlie, Age: 35, City: Chicago指定字段(Name, Age)去重结果,重复则保留第一条:
Name: Alice, Age: 30, City: New York
Name: Bob, Age: 25, City: Los Angeles
Name: Charlie, Age: 35, City: Chicago
Name: Alice, Age: 28, City: San Francisco全字段去重:
Name: Alice, Age: 30, City: New York
Name: Bob, Age: 25, City: Los Angeles
Name: Charlie, Age: 35, City: Chicago
Name: Alice, Age: 28, City: San Francisco

三、注意雷点

        以下代码不能完成全字段去重,因为people是引用类型,Distinct() 一般用于List<string>,List<int>这些值类型去重,而不涉及引用类型的字段比较。

people.Distinct().ToList()

        若需要全字段去重:1.使用DinstinctBy语法,加上所有字段。2.使用标题四的封装方法(反射实现全字段去重)。

四、全字段去重封装方法

1.封装

/// <summary>
/// 通用的全字段去重方法
/// </summary>
/// <returns></returns>
public static IEnumerable<T> DistinctByAllFields<T>(IEnumerable<T> items)
{// 获取 T 类型的所有字段值var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);return items.GroupBy(item => string.Join(",", properties.Select(p => p.GetValue(item))))  // 按所有字段值连接生成唯一标识符.Select(group => group.First());  // 取每组的第一个元素
}

2.示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;public class Program
{public static void Main(){// 创建一些示例实体对象var people = new List<Person>{new Person { Name = "Alice", Age = 30, City = "New York" },new Person { Name = "Bob", Age = 25, City = "Los Angeles" },new Person { Name = "Alice", Age = 30, City = "New York" },new Person { Name = "Charlie", Age = 35, City = "Chicago" },new Person { Name = "Alice", Age = 28, City = "San Francisco" }};// 调用封装的去重方法var uniquePeople = DistinctByAllFields(people).ToList();Console.WriteLine("根据所有字段去重的结果:");foreach (var person in uniquePeople){Console.WriteLine($"Name: {person.Name}, Age: {person.Age}, City: {person.City}");}}/// <summary>/// 通用的全字段去重方法/// </summary>/// <returns></returns>public static IEnumerable<T> DistinctByAllFields<T>(IEnumerable<T> items){// 获取 T 类型的所有字段值var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);return items.GroupBy(item => string.Join(",", properties.Select(p => p.GetValue(item))))  // 按所有字段值连接生成唯一标识符.Select(group => group.First());  // 取每组的第一个元素}
}public class Person
{public string Name { get; set; }public int Age { get; set; }public string City { get; set; }
}

http://www.dtcms.com/wzjs/183025.html

相关文章:

  • 杭州建设网站设计的公司全国疫情突然又严重了
  • 三星网上商城打不开北京seo费用是多少
  • 构建一个网站十大网络推广公司
  • 南京哪家公司做企业网站 做得比较好关键词搜索排名软件
  • 网站建设外包公司万网是什么网站
  • 网站建设 专项资金变更有创意的网络广告案例
  • 赣州网站开发梅州网络推广
  • sae安装WordPress4.4成都网站seo技术
  • 企业网站建设英文网站制作的费用
  • 成都网站设计报价什么推广方式能快速引流
  • 塘沽网站制作百度怎么发帖子
  • 江都区城乡建设局网站四川seo推广
  • 广饶网站设计找平台推广
  • 网站顶级域名证书网络推广员工作内容
  • 网站审查元素 可做代码营销网络是什么意思
  • 语音识别程序代做网站想做网络推广如何去做
  • 外贸网站推广 雅虎问答有用吗网络推广图片
  • java 做直播网站有哪些软件100种找客户的方法
  • 专门做win7系统的网站自己做一个网站
  • 鹤壁网站建设seo是哪个英文的缩写
  • 西安做网站的公司客服制作一个小型网站
  • ac86u做网站服务器seo网站推广杭州
  • 手机网站建设模板福州seo快速排名软件
  • 网易疫情数据搜索引擎优化包括哪些
  • 广告联盟上怎么做网站色盲能治好吗
  • 网站建设音乐代码seo关键词排名怎么优化
  • 青海省住房和城乡建设厅网站首页打开免费百度啊
  • 网站怎么收费的搜索引擎优化的英文缩写是什么
  • 网站技术开发阳江网站建设
  • 可做实名认证的网站怎样设计一个网页