我有一列有逗号分隔的 ID,我将它放入 LINQ 中的列表中。
我需要做的只是返回此列表中的所有值都存在于另一个中的 DataRows,如果有的话,我已经让它工作了,但我需要全部。
下面的代码:
results =
results.Where(
d => d["FilterIDs"] != null && // Check the row has FilterIds
!filterValues.Except(
d["FilterIDs"].ToString().Split(',').ToList(). // Tokenise the string
Where(s => !String.IsNullOrEmpty(s)).ToList(). // Filter out bad tokens
ConvertAll<int>(s => Convert.ToInt32(s)) // Convert all the tokens to ints
).Any());
}
因此,例如,我有一行在它的“FilterIDs”列中有 1,2,3,4
然后,我的 List 'filterValues' 中有 1,2,3,4,5,6,7 - 在这种情况下,将返回此行。
另一行有 1,8,9 - 只有 1 个匹配项,因此不会返回。
我一直在兜圈子,因此失去了意愿,因此非常感谢您的帮助。