Om du kör .net framework 3.5 tror jag det är en extension i List som heter Distinct()
List<Stuff> testlist = new List<Stuff>().Distinct();
6 svar · 556 visningar · startad av invecklaren
Hej!
Jag har en lista med heltal (kan vara en array eller en List(of Integer))
Nu vill jag fråga listan:
- Vilka är de unika heltalen i listan (motsv SELECT DISTINCT i SQL)
1. Vad ska jag välja för typ av lista?
2. Hur ska jag kunna fråga listan?
Om du kör .net framework 3.5 tror jag det är en extension i List som heter Distinct()
List<Stuff> testlist = new List<Stuff>().Distinct();
I namnrymden System.Linq
Det verkar synnerligen coolt. Ska kolla upp det efter ett par Guinness!
Detta verkar inte funka:
protected void Page_Load(object sender, EventArgs e)
{
System.Linq.List<Int32> testlist = new System.Linq.List<int32>().Distinct();
}
Error 1 The type or namespace name 'List' does not exist in the namespace 'System.Linq' (are you missing an assembly reference?) C:\Test\ColorWebApp\WebSite2\Default.aspx.cs 12 20 C:\...\WebSite2\
List list<int> = new List<int>() {1,1,2,2,3,3,4,4,5,5};
IEnumerable distinctList = list.Distinct();
...
Du måste fylla din lista innan du kan plocka ut de unika värdena. Om du enbart vill ha en lista med unika värden så finns HashSet istället.
Om du högerklickar på .Distinct() så får du upp vad distinct returnerar för någonting.
Du kan göra något som:
var list = List<Int32>{1, 2, 3, 4, 5, 6, 6, 6, 1, 1};
var newList = list.Distinct().ToList();
Linq's extension metoder är toppen på det viset.
Det finns andra alternativ också
list.All().Where(kriteria)
där kriteria är function / lambda expression också.