【问题标题】:Searching for value in Datatable with list in column C#使用列 C# 中的列表在 Datatable 中搜索值
【发布时间】:2021-05-24 14:26:51
【问题描述】:

我有一个数据表(比如 dt),其中一列是 map_ids,它是一个 id 列表,如下所示:

Map_ids
104400,100197
100142,272189
101216,272145,272146
29,272188
110016,100206
100117,272019,110355
3,109997
23,110438

如果map_ids列中存在id,我想在数据表中搜索并返回该行。

例如,我想获取我尝试使用代码的 id 为“3”的行:

dt.Select("map_ids like '%3%'")[0]["map_ids"].ToString();

但在这种情况下发生的是它返回以下行:100117,272019,110355

预期行:3,109997

最好的方法是拆分这个字符串并检查数组是否包含 id 但不确定如何实现。欢迎提出任何建议,也不介意使用 Linq。

【问题讨论】:

  • List results = dt.AsEnumerable().Where(x => x.Field("Map_id").Contains("3")).ToList();您可以添加正则表达式来执行包含。

标签: c# datatable


【解决方案1】:

以下查询是意外的,因为以 % 开头将过滤类似“xxxxx3xxx”的内容。

dt.Select("map_ids like '%3%'")[0]["map_ids"].ToString();

尝试使用

dt.Select("('H,'+ map_ids + ',T') LIKE '%,3,%'")[0]["map_ids"].ToString();

此外,也许您可​​以添加一些逻辑来检查数据是否存在。它有抛出异常的概率。

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多