Linq를 사용하여 항목이 둘 이상의 그룹에 속하는 그룹을 만들 수 있습니까?Linq - 항목이 여러 그룹에 속하는 그룹화?
public class Data
{
public string ID;
public int From;
public int To;
}
그리고이 목록 :
List<Data> data = new List<Data>()
{
new Data() { ID = "A", From = 1, To = 3 }, // Call this A
new Data() { ID = "B", From = 1, To = 2 }, // Call this B
new Data() { ID = "C", From = 2, To = 3 } // Call this C
};
내가 원하는에서와 (할 수있는 범위에서 가능한 각 정수에 의해 그룹하지만 대신 찾는 다음과 같은 사소한 예를 사용
min + max 내가 원하는 범위 (예 : 1에서 3)로 쿼리를 제공 할 수 있으며 각 그룹에서 그룹화 int가 해당 범위에 맞는 데이터 인스턴스에 대한 참조가됩니다.
하드 나는 각각의 기대 각 그룹 및 인스턴스 보여주기 위해 쉽게 설명하기 :이게 가능
[Group 1] 1 - A, B
[Group 2] 2 - A, B, C
[Group 3] 3 - A, C
를? 또는 그룹이 상호 배타적이어야합니까?
편집 : 가입 방법?
먼저 범위를 공개하지 않고도이 작업을 수행 할 수 있습니까?
는 는 # 2 편집:는 대답이 리팩토링을 사용하여, 당신이 할 수는 :
var result = Enumerable.Range(1,3)
.Select(i => new
{
Key = i,
Values = data.Where(d => i >= d.From &&
i <= d.To)
});
이 무엇을 맞는 모든 데이터 인스턴스가없는 범위도 돌아 숫자의 추가 혜택입니다시킨 I 필요한 것.
나는 당신이 옳을 수도 있다고 생각하고, 내가 시도한 것을 보여주기 위해 나의 질문을 편집했다. 처음에 범위를 만들 필요가 없다면 좋을까요? – Kasaku