简体   繁体   中英

How can i remove same item in list

Could you help me? I cant remove the same item in a list.

List<string> text = new List<string>();
text.Add("A");
text.Add("B");
text.Add("C");
text.Add("D");
text.Add("D");
text.Add("A");
foreach(string i in text)
{
 Console.WriteLine(i);
}

the result is A,B,C,D,D,A but I need to be B,C . How can i do?

Here is my solution,

 var result = text.GroupBy(x => x).Where(y => y.Count() == 1).Select(z => z.Key); 
 Console.WriteLine(string.Join(", ", result));

Explanation:

GroupBy(x => x): This will group list based on characters ie predicate.

.Where(y => y.Count() == 1): This will filter elements which are duplicates.

.Select(z => z.Key): Select will create new enumerable which contains Keys from Grouped elements

Something like

text.GroupBy(t => t).Where(tg => tg.Count()==1).Select(td => td.First());

This proberly wont compile, you need to fix that your self.

The idea is: 1. Group by item. 2. Take all groups with exactly 1 item 3. Select the Item

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM