如果A列匹配,C#Linq从B列获取值
根据下表,我想使用Linq获取与测试ID如果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
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-在这种情况下,只需将字符串替换为变量并使用该变量即可。