重複する列を表形式のデータからリストに折りたたむ最もエレガントな方法は何ですか?
例: 単一の差別化列を除いて重複データを含む行を返す SQL クエリを作成しました。
FIRST LAST AGE CAR
Charles Burns 32 Accord
Charles Burns 32 Buick
Charles Burns 32 Lexus
Anders Hejlsberg 51 Porsche
Anders Hejlsberg 51 Ferrari
Anders Hejlsberg 51 Bugatti
Anders Hejlsberg 51 Pinto
次のようなものを使用してこれらを読み取り、CarInfo オブジェクトに入れます。
while(reader.Read()) {
first = reader["first"]
last = reader["last"]
//...
}
var myData = new CarInfo(first, last, ...);
オブジェクトは次のようになります。
// CarInfo: Need 7 total instances with example data
string first { get; private set; }
string last { get; private set; }
int age { get; private set; }
string car { get; private set; }
私はそれが次のようになりたい:
// CarInfo: Need only 2 instances with example data;
string first { get; private set; }
string last { get; private set; }
int age { get; private set; }
List<string> cars { get; private set; }
もちろん、これを手動で行うこともできます。たとえば、一意の ID を形成する列を選択し、それらが既にリスト (または辞書など) にあるかどうかを確認しますが、それは非常に面倒です。私は、LINQ がこのデータを美しく折りたたむことができるのではないかと疑うほど LINQ に精通していますが、正確な方法が頭に浮かぶほどには十分に精通していません。