c#에서 Linq Lambda의 ToLookup 방법 사용
5695 단어 c#
List ss = new List();
Student ss1 = new Student() { Id = 1, Age = 1, Name = "11" };
Student ss2 = new Student() { Id = 1, Age = 1, Name = "11" };
Student ss3 = new Student() { Id = 2, Age = 2, Name = "22" };
Student ss4 = new Student() { Id = 2, Age = 2, Name = "22" };
Student ss5 = new Student() { Id = 2, Age = 2, Name = "22" };
Student ss6 = new Student() { Id = 3, Age = 3, Name = "33" };
ss.Add(ss1);
ss.Add(ss2);
ss.Add(ss3);
ss.Add(ss4);
ss.Add(ss5);
ss.Add(ss6);
//var aa = ss.GroupBy(m => new { m.Id, m.Age }).Select(group => new {group.Key.Id,group.Key.Age,count = group.Count()}).ToList();
//foreach (var item in aa)
//{
// Console.WriteLine(item.Id + "||" + item.Age + "||" + item.count);
//}
var dic = ss.ToLookup(m => m.Id);
foreach (var item in dic)
{
Console.WriteLine(" ID :" + item.Key);
foreach (var item1 in item)
{
Console.WriteLine("\t\t" + item1 + " || " + item1.Age + " || " + item1.Name);
}
}
실행 결과:
ID :1
Test.Student || 1 || 11
Test.Student || 1 || 11
ID :2
Test.Student || 2 || 22
Test.Student || 2 || 22
Test.Student || 2 || 22
ID :3
Test.Student || 3 || 33
그중item1은student의 실례이다.
이 방법은 ToDictionary와 유사하지만 Dictionary 유형의 키 하위 세그먼트가 중복되지 않는 문제를 피합니다.
또한 한 필드에 따라 Group By로 정렬된 장면에 사용할 수 있고 후자에 비해 색인을 가지고 조작하기 편리하다는 장점이 있다(사실 Group By의 데이터 뒤에 ToList()를 추가하면 편리하다. 물론 이것은 뒷말이다).
전재 대상:https://www.cnblogs.com/lbhqq/p/8478118.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.