【问题标题】:Checking if a list is included in a property which is a string?检查列表是否包含在字符串属性中?
【发布时间】:2018-05-26 15:27:46
【问题描述】:

场景 我有一个具有不同数量属性的类。其中之一是字符串。

目标 检查该属性中是否包含字符串列表。

示例 字符串属性可以是汽车的描述,就像:

“雪佛兰 100 有 3000cc,使用 250Cv。55/95 轮胎包括在内 在价格上。仅用于 2 PAX...等等..."

检查清单可以是:

“3000cc”、“250Cv”、“55/95 轮胎”

所以我的代码是:

         Class_A
int      id
int      price
string   definition

Class_A car = new Class_A()
{
    id = 1,
    price = 100000,
    definition = "Chevrolet 100 has 3000cc, using 250Cv. The 55/95 tires are 
    included in the price. Just for 2 PAX... etc ..."
}

List<string> checkingList = new List<string>();
checkingList.Add("3000cc");
checkingList.Add("250Cv");
checkingList.Add("55/95 tires");

作为我尝试的示例:

bool sucess;
sucess = car.Select(p => p.definition.Contains(checkingList)).FirstorDefault();
sucess = car.Select(p => p.Where(o => o.definition.Contains(checkingList)).FirstorDefault();
sucess = car.Select(p => p.Where(o => o.definition.ForEach.Contains(checkingList)).FirstorDefault();

先谢谢各位朋友了。

【问题讨论】:

  • 它们被称为Properties,而不是attributes。属性完全是另外一回事。
  • Class_A 是否实现了IEnumerable&lt;T&gt;?否则你怎么打电话给Select?或者car 应该是List&lt;Class_A&gt;
  • @CodingYoshi 谢谢... :)
  • @juharr。我真正的 Class_A 更复杂,它实现了 IEnumerable。谢谢老哥

标签: c# asp.net entity-framework linq linq-to-entities


【解决方案1】:

假设您有一个名为 carsList&lt;Class_A&gt;,请使用 Any 方法检查是否在 checkingList 属性中找到任何来自 checkingList 的项目:

cars.Select(p => checkingList.Any(y => p.definition.Contains(y)).FirstorDefault();

如果您需要确保checkingList 中的每个字符串都在definition 属性中,请使用All 而不是Any

【讨论】:

  • 我不确定,但看起来 OP 可能实际上需要 All
  • 另外我不知道你如何在car 上调用Select,因为它似乎没有实现IEnumerable&lt;T&gt;
  • @CodingYoshi。我需要全部而不是任何,但是当我看到您的代码时,我意识到了这一点。再次感谢队友
  • @juharr。我是一个不好的例子,对此感到抱歉。也感谢您尝试教我... :)。干杯队友:)
  • @juharr 我认为 OP 有一个汽车列表
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 2020-02-26
  • 2022-12-13
  • 1970-01-01
相关资源
最近更新 更多