코드에서 문자열 [] (각 문자열 []이 열임) 목록으로 구문 분석되는 테이블이 있습니다.각 키마다 다른 목록을 반환하십시오.
Column1| Column2 | Column3
--------+---------+----------
0 | 1 | 8
3 | 2 | 3
5 | 2 | 8
Let's 말 :
string[] column1 = { 0, 3, 5 }
string[] column2 = { 1, 2, 2 };
string[] column3 = { 8, 3, 8 };
List<string[]> table = new List<string[]>() { column1, column2, column3 };
내가 열 COLUMN3 GROUPBY (즉 열 1)을 선택하고 COLUMN3 각각 다른 값리스트를 생성 할. 즉, Column1을 column3으로 그룹화하고 Column3의 각기 다른 값에 대해 Column을 만듭니다.
출력은 다음과 같습니다
string[] result1 = { 3 }; // From column3[1] = 3
string[] result2 = { 0, 5 }; // From column3[0] = column3[2] = 8
이 post의 혼합을 키우면, msdn에서이 one 및 간단한 1. 나는이 post으로 수행 한 후, 컬럼 1과 3 열을 가진 개체를 만드는 방법에 대해 생각하고 :
이Class Row { public Row(string row1, string row3); }
List<Row> rows = new List<Row>();
for(int i = 0; i < column1.Length; i++)
{ rows.Add(new Row(Column1[i], Column3[i])); }
var output = rows.GroupBy(row => row.row3).ToDictionary(grp => grp.Key, grp => grp.ToList());
그러나이 코드는 코드가 조금 추한입니다. 내 말은
column3.selectmany(...).GroupBy(row => row.row3).ToDictionary(grp => grp.Key, grp => grp.ToList());
같은이 밤은 뭔가, 개체 목록 ...을 새로운 클래스를 생성하고 입력의 필요없이 일부 표현은 또한, 나는 출력으로
string[] result1 = { 3 }; // From column3[1] = 3
string[] result2 = { 0, 5 }; // From column3[0] = column3[2] = 8
참고 또한이 * 질문은 질문해야 질문 *. 너는 무엇을 알고 싶니? – LukeH
어떻게 할 수 있습니까? 새 클래스, 객체 목록을 만든 다음 groupby를 수행하면 실적이 저조한 것으로 보입니다 (좋은 코드는 아닙니다). 나는 selectmany 연산이 새로운 클래스를 만드는 대신에 더 좋을 것이라고 생각한다. 그러나 그것을 사용하는 방법을 잘 모른다. – Alberto