【发布时间】: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();您可以添加正则表达式来执行包含。