c# list<user> list中有重复的数据,去掉重复的数据,或删掉重复的数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# list<user> list中有重复的数据,去掉重复的数据,或删掉重复的数据相关的知识,希望对你有一定的参考价值。
是在一个数组中
如果已经有重复的数据在list里面了,可以先根据某个属性进行排序,然后再从头开始逐个对比数据,有重复的就remove掉。我不晓得list有没有自带的去重复函数,可以去研究下。另外,在将数据加入到list的时候,可以先对list进行查找,看是否当前添加的数据存在否,如果存在,则不进行添加,不存在才加到list追问
能不能给的代码
参考技术A // 扩展IEnumerable<T>static class ExternEnumerable
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
HashSet<TKey> seenKeys = new HashSet<TKey>();
foreach (TSource element in source)
if (seenKeys.Add(keySelector(element)))
yield return element;
// 筛选去重调用
IEnumerable<User> ie = list; // 先转换为IEnumerable接口类型
ie=ie.DistinctBy<User,string>(u=>u.DatasName+"|"+u.DatasType+"|"+u.DatasValue);本回答被提问者采纳 参考技术B list=list.Distinct().ToList();追问
没作用
c#中list绑定datagridview为啥不显示数据
public class Users
public ObjectId _id;
public string Name get; set;
public string Career set; get;
public string Name1 get; set;
public string Identity get; set;
List<Users> a = new List<Users>();
dataGridView1.DataSource = a;
我想先查询一下如在textBox中输入一值查询,将查询后的数据存入a中,然后和在dataGridView显示出来,为什么只显示了Name,Career,Name1,Identity的列明却没有显示数据?
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication20
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void Form1_Load(object sender, EventArgs e)
dgv_message.GridColor = Color.Blue;
//设置datagridview颜色
dgv_message.DataSource = new List<student>()
//设置datagridview数据来源来自List <student>
new student()sName="小李",Age=20,
new student()sName="小张",Age=40,
new student()sName="小王",Age=60,
new student()sName="小黄",Age=22
;
//对List <student>赋值
dgv_message.Columns[0].HeaderText = "姓名";
dgv_message.Columns[1].HeaderText = "年龄";
//设置datagridview列名
//定义class student并实现读写赋值
public class student
private string name;
private int age;
public string sName
get return name;
set name = value;
public int Age
get return age;
set age =value ;
如果把student中类变成以下代码,则无法显示:原因没有读写赋值
public class student
public string sName;
public int Age;
参考技术A 建议你再仔细看下datagridview的数据操作资料,百分之八九十可能是你代码没写对,确保代码写全,有问题可以自己加断点调试,培养好这个习惯可以给你带来很大的收获。本回答被提问者采纳 参考技术B 看你代码你只是new了一个users集合 并没有往集合中添加数据啊 参考技术C 字段要数据绑定到对应列
以上是关于c# list<user> list中有重复的数据,去掉重复的数据,或删掉重复的数据的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中,是不是可以将 List<Child> 强制转换为 List<Parent>?
从 List<OwnStruct> 返回 List<T> 的方法,其中 List<T> 仅包含 List 中所有 OwnStructs 的一个属性(C#)[重复]