检查对象参数是不是包含字母列表

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 方法不能将字符串列表作为输入。只有一个字符列表。它可以尝试匹配多个字母。

以上是关于检查对象参数是不是包含字母列表的主要内容,如果未能解决你的问题,请参考以下文章

检查列表是不是包含飞镖中对象的属性

Python检查列表项是不是(不)包含任何其他列表项

对象的 LINQ 检查列表包含一个值而不是其他一些值

过滤具有多对多关系的对象,检查它是不是包含列表中的至少一个元素

Python - 检查一个字母是不是在列表中

检查字符串是不是包含字母数字