将表格数据中的重复列折叠到列表中的最优雅的方法是什么?
示例:我编写了一个 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 足够熟悉,怀疑它可以很好地折叠这些数据,但还不够熟悉,无法想到一个确切的方法。