linq 서로 다른 대상 집합 교차 집합
class Product
{
public int ID { get; set; }
public string SubID { get; set; }
public double Price { get; set; }
}
class SubProduct
{
public string ID { get; set; }
}
var pList1 = new List<Product>
{
new Product {ID = 1, SubID = "AA", Price = 0.1 },
new Product {ID = 2, SubID = "BB", Price = 0.2 },
new Product {ID = 3, SubID = "BB", Price = 0.4 },
new Product {ID = 4, SubID = "AA", Price = 0.7 },
new Product {ID = 5, SubID = "CC", Price = 0.3 }
};
var pList2 = new List<SubProduct>
{
new SubProduct { ID="AA" },
new SubProduct { ID="BB" }
};
세 가지를 교집합하여 실현하고, 차집합은 앞에서 비연산을 가하면 된다
1、
var result = pList1.Where(x => !pList2.Select(y => y.ID).Contains(x.SubID)).ToList();
2、
var ids = pList2.Select(x => x.ID).Distinct().ToList();
var result1 = pList1.GroupBy(x => x.SubID).Where(x => ids.Contains(x.Key)).SelectMany(x => x).ToList();
3、
var ids = pList2.Select(x => x.ID).Distinct().ToList();
var result = pList1.AsParallel().GroupBy(x => x.SubID).Where(x => ids.Contains(x.Key)).SelectMany(x => x).ToList();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.