检查对象参数是不是包含字母列表
Posted
技术标签:
【中文标题】检查对象参数是不是包含字母列表【英文标题】:Check if object parameter contains list of letters检查对象参数是否包含字母列表 【发布时间】:2018-11-09 21:46:35 【问题描述】:我有一个带有参数 ID 和代码的对象列表。我想在 Code 参数中返回包含特定字母的对象。
ID Code
---------
0 ABCD
1 LMNO
2 ARDQ
4 PQRD
字符串列表 -> 字母 = ('A','M','DQ')
对于此示例,它应返回在 Code 参数中包含“A”或“M”的任何对象。
结果 -> 对象 ID 的 0,1,2
我试过这样的
var Results = MyObjects.FindAll(x => Letters.Contains(x.Code))
但这不是我想要的,我不知道该怎么做。
【问题讨论】:
这是一个你很难解决的问题。当你处于这种情况时,想一想:有没有一个我可以解决的更简单的问题让我参与其中?这是一个更简单的问题:代码包含“ A"? 你能解决这个问题吗?如果没有,那么您知道该怎么做:继续前进。找到一个更简单的问题,让你部分解决。 你能正确解决这个问题的最复杂但最简单的版本是什么? 【参考方案1】:根据最初提出的问题更新了问题的作品。
var Results = MyObjects.Where(x => letters.Any(y => x.Code.Contains(y))).Select(x => x.ID);
对于每个对象,检查字母以查看其是否包含在代码中。
【讨论】:
对不起,我的问题没有很好地解释。字符串列表不是字符,它可以包含多个字母。我已经编辑了我的问题以包含一个字母列表包含“DQ”的示例。【参考方案2】:看了一会儿,我认为最好的解决方案是嵌套foreach。
var Results = New Object();
foreach(Object row in myObject)
foreach(string letter in letters)
if(row.column2.contains(letter))
Results.add(row);
;
;
;
【讨论】:
我的理解是 Contains 方法不能将字符串列表作为输入。只有一个字符列表。它可以尝试匹配多个字母。以上是关于检查对象参数是不是包含字母列表的主要内容,如果未能解决你的问题,请参考以下文章