如果A列匹配,C#Linq从B列获取值

如果A列匹配,C#Linq从B列获取值,c#,linq,datatable,C#,Linq,Datatable,根据下表,我想使用Linq获取与测试ID1a关联的所有设备名称,并将它们存储在列表中,这可能吗?假设并不总是知道哪个测试ID会被多次列出 Test ID DeviceName 1a dev1 1b dev2 1a dev2 1c dev1 如果您只想读取B列中的所有值,则只需执行以下查询: string testID; // set testID from somewhere (user input, config file

根据下表,我想使用Linq获取与测试ID
1a
关联的所有设备名称,并将它们存储在列表中,这可能吗?假设并不总是知道哪个测试ID会被多次列出

Test ID    DeviceName
1a         dev1
1b         dev2
1a         dev2
1c         dev1

如果您只想读取B列中的所有值,则只需执行以下查询:

string testID;
// set testID from somewhere (user input, config file, another query etc.)

var results = dataTable.Where(t => t.Id == testID).Select(t => t.DeviceName).ToList();

结果
的类型将为
列表

如果您只想读取B列中的所有值,那么以下查询就是您所需要的:

string testID;
// set testID from somewhere (user input, config file, another query etc.)

var results = dataTable.Where(t => t.Id == testID).Select(t => t.DeviceName).ToList();

结果
将属于
列表类型

您的问题并不十分清楚。您询问并展示了有关
TestId
DeviceName
的示例,但随后展示了许多其他字段的代码。你能更好地解释一下你想做什么吗?这个概念似乎很清楚…我有一个包含多个测试id的表,希望收集所有与测试id关联的主机名;如果代码和示例表相同或不相同,这应该没有什么区别。为什么要按2个字段分组并向DataTable添加行?这让我有点困惑。我可以回答如何分组,然后连接这些值,但代码的其余部分让我不确定这是否是您想要的。这是基于对我的问题的回答:我不确定是否有其他/更好的方法…我只使用您在数据示例中指定的2列执行了上面的代码,而且似乎您正是这样做的你的问题不是很清楚。您询问并展示了有关
TestId
DeviceName
的示例,但随后展示了许多其他字段的代码。你能更好地解释一下你想做什么吗?这个概念似乎很清楚…我有一个包含多个测试id的表,希望收集所有与测试id关联的主机名;如果代码和示例表相同或不相同,这应该没有什么区别。为什么要按2个字段分组并向DataTable添加行?这让我有点困惑。我可以回答如何分组,然后连接这些值,但代码的其余部分让我不确定这是否是您想要的。这是基于对我的问题的回答:我不确定是否有其他/更好的方法…我只使用您在数据示例中指定的2列执行了上面的代码,而且似乎您正是这样做的想要它..我应该重复一次,它并不总是知道testID会是什么be@Chris-在这种情况下,只需将字符串替换为一个变量并使用它。我应该反复说明,它并不总是知道testID将是什么be@Chris-在这种情况下,只需将字符串替换为变量并使用该变量即可。