我正在尋找一種方法來查找串列中唯一的專案:
List<Item> list = new List<Item>();
list.Add(new Item() { id = 1, name = "test" });
list.Add(new Item() { id = 2, name = "test" });
list.Add(new Item() { id = 3, name = "test1"});
list.Add(new Item() { id = 4, name = "test2"});
list.Add(new Item() { id = 5, name = "test2"});
var uniqueItems = ?
uniqueItems 應該包含 { id = 3, name = "test1"} 因為 test1 是唯一的
實作它的最佳方法是什么?
uj5u.com熱心網友回復:
list.GroupBy(x => x.Name)
.Where(x => x.Count() == 1)
.Select(x => new Item { id = x.First().id, name = x.Key });
uj5u.com熱心網友回復:
幾種方法(使用Linq):
var uniqueItems = list.Where(item => list.Count(li => String.Equals(item.name, li.name)) == 1);
//or
var uniqueItems = list
.GroupBy(item => item.name)
.Where(g => g.Count() == 1)
.SelectMany(g => g);
uj5u.com熱心網友回復:
您可以使用 linq 運算子 Where 和 Count 之類的
var uniqueItems = list.Where(x => list.Count(item => item.name == x.name) == 1);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/486373.html
