首页>Program>source

我有一个数组:

string[] exceptions = new string[] { "one", two", "one_1", "three" };

..我想说:

var result = from c in myCollection
             where not c.Property[3].Value.StartWith(exceptions)
             select c;

所以我想要 myCollection   要过滤以仅显示那些其 Property[3].Value   not吗   StartWith   异常数组中的值.我知道Startswith不会接受集合,所以我不确定是否可以通过LINQ来实现。

在LINQ中有可能吗?! 还是我想把我的问题塞进LINQ解决方案中?

EDIT:   我应该说,Contains不是一个选择,因为我只想排除其属性以异常字符串开头的元素。

最新回答
  • 7月前
    1 #

    var result =  myCollection.Where(c =>  
                               exceptions.All(e => 
                                           !c.Property[3].Value.StartsWith(e));
    

  • 7月前
    2 #

    尝试一下:

    string[] exceptions = new string[] { "one", "two", "one_1", "three" };
    var result = from c in myCollection
                where !exceptions.Any(exception =>
                    c.Property[3].Value.StartsWith(exception))
                select c;
    

  • 7月前
    3 #

    您可以使用IndexOfAny(并且检查结果为索引位置零),因为它需要一个集合。

  • 7月前
    4 #

    您可以选择不需要的项目的集合,然后执行 IEnumerable.Except()。

    我应该是这样的:

    var result = from c in myCollection               
                 where not c.Property[3].Value.StartWith(exceptions)               
                 select c;  
    var finalResult = myCollection.Except(myCollection.Select(i => i.StartWith(exception)));
    

  • 7月前
    5 #

    var result = myCollection
                  .where(
                     rs=>exceptions
                     .where(
                         rs1=>!rs.property[3].value.startsWith(rs1)
                      )
                  )
    

  • javascript:是否有JS函数可查找小数点前后的值
  • angular:如何使用Angular2中的Observable Map函数将Http服务返回的Response对象映射到TypeScript对象