우리는 목록과 같은 메모리 컬렉션의 하나 또는 일부 개별 속성에 따라 을 그룹화하고 통계를 표시하는 경우가 많습니다. 가장 쉽게 생각하는 방법은 특정 키 속성을 기반으로 List 인스턴스를 탐색하고 이를 다음 사전 유형
Dictionary<string, List<MyObject>
으로 변환하는 것입니다. 예를 들어,
List<Car> cars = new List<Car>(){ new Car(1,"audiA6","private"), new Car(2,"futon","merchant"), new Car(3,"feiren","bike"), new Car(4,"bukon","private"), new Car(5,"baoma","private"), new Car(6,"dayun","merchant") };
가 사용하려는 자동차가 있는 경우 id를 키로 사용하여 사전 idCarDict로 변환합니다. 이 메서드는 가장 복잡한 논리를 가지며 가장 많은 코드를 필요로 하며
ar idCarDict = cars.ToDictionary(car=>car.id);
객체 의 인스턴스가 하나만 있을 수 있습니다. 즉, 반환되는 유형은
Dictionary<string,Object>
Dictionary<string, List<Car>> typeCarDict = cars.GroupBy(car => car.type). ToDictionary(g => g.Key, g => g.ToList());
var dict = new Dictionary<string,List<Car>>();foreach(var car in cars) { if(dict.Contains(car.type)) dict[car.type].Add(car); else dict.Add(car.type,new List<Car>(){car}));}
new {key1, key2, ...}
다음 논리를 참조하세요.
static void printfDuplicateCompare(List<ValPair> compares) { //按组合键分组后,每组元素个数大于2的分组,按降序排序 var rtnByVal1 = from item in compares group item by new { item.Val1, item.Val2 } into g where g.Count()>1 orderby g.Count() descending select g; //按Val1和Val2组合为字典键,元素个数为值 var dict = rtnByVal1.ToDictionary(g => g.Key,g=>g.Count()); }
위 내용은 .NET Framework - 컬렉션 및 LINQ의 기술 코드 '그룹화'에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!