关于用C#对List<>中去除重复元素的问题!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于用C#对List<>中去除重复元素的问题!相关的知识,希望对你有一定的参考价值。
class Program
static void Main(string[] args)
string basePath = @"D:\Doc\wordcount.mdb";
string connstr = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + basePath;
string sql = "select * from [wordcount]";
List<WordInfo> list = new List<WordInfo>();
using (OleDbConnection conn = new OleDbConnection(connstr))
try
OleDbCommand cmd = new OleDbCommand(sql, conn);
conn.Open();
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
WordInfo tmp = new WordInfo();
tmp.word = reader.GetString(1);
tmp.flag = 0;
list.Add(tmp);
reader.Close();
conn.Close();
catch (Exception ex)
Console.WriteLine("异常:" + ex.Message);
Console.WriteLine(list.Count);
public struct WordInfo
public string word;
public int flag;
以上是我的部分代码,我想做的是,去除list中“word”字符串重复的结构体,请问代码该如何书写,我自己写的总是提示数组超出索引而报错,请各位大神指教,真的很急!
List<WordInfo> list = new List<WordInfo>();
WordInfo temp;
for (int i = 0; i < 10; i++)
temp = new WordInfo();
temp.word = "word";
temp.flag = i;
list.Add(temp);
for (int i = 0; i < 10; i++)
temp = new WordInfo();
temp.word = "word1";
temp.flag = i;
list.Add(temp);
var aa = from ll in list where ll.word == "word" select ll;// Linq 查找出所有 WordInfo 的word的值为 “word" 的元素
if(aa.Count()>0)// 判断是否有 word 为 “word" 的元素
var temp1 = aa.ToList()[0];// 保留一个 word的值为 “word" 的元素
while (aa.Count()>0)
list.Remove( aa.ToList()[0]);//移走所有 word的值为 “word" 的元素
list.Add(temp1);// 再添加一个 word的值为 “word" 的元素
参考技术A 可以用list.Distinct(),去除重复元素
在JAVA中,两个List,要从第一个List中去除所有第二个List中与之重复的元素
例如List1<Employee>的内容是e1,e2,e3.而List2<Employee>的内容是e3,e4,e5.那么我要得到的的List3<Employee>的内容应该是e1,e2.求指教。不要拿一堆for循环给我。。。
java中,list是可以重复的,但是set就不能重复了。在java中,list成为列表,而set则是集合,集合中的元素是不可以重复的,但是列表中的是可以的,所以,list里面的元素是可以重复的。 参考技术A 将List2转为Map,Employee属性作为key,对象为value,循环list1判断key是否在Map中 有就移除 参考技术B for(int i=0;i<list1.size();i++)
if(list2.contains(list1.get(i)))
list1.remove(i);
i--;
参考技术C List3 = List1;
List3.removeAll(List2); 参考技术D public static void main(String[] args)
List<String> firList = new ArrayList<String>();
firList.add("1");
List<String> twoList = new ArrayList<String>();
twoList.add("2");
twoList.add("3");
firList.removeAll(twoList);
System.out.println(firList.toString());
以上是关于关于用C#对List<>中去除重复元素的问题!的主要内容,如果未能解决你的问题,请参考以下文章