2017-07-13 135 views
0

假设有一个名为“Fruits”的模型。它有两个属性
Linq查询过滤列表中的值

  • 名称(字符串)
  • isAvailable(布尔)

我有一个FruitsList,它拥有一些值。

Name isAvailable 

Apple True 
Banana False 
Mango True 

现在,我想这是可以作为一个字符串加入水果的名称,availableFruits = "Apple|Mango"

string availableFruits = string.Join("|", FruitsList.Where(x => x.isAvailable= true).Select(x => x.Name)); 

这是我迄今所做的,它是不工作。希望有人能帮忙。

+0

'FruitsList.Where(X => x.isAvailable)'。你试图分配'isAvailable',而不是检查它的值。 – Rob

+0

'string availableFruits = string.Join(“|”,FruitsList.Where(x => x.isAvailable).Select(x => x.Name));' –

+0

非常感谢@Rob。 – sandaru

回答

2

看看你的代码,你正在使用x.isAvailable= true,通过像这样使用你正在赋值给属性,这不是一个有效的语法,因此你的查询不会编译,你必须使用==代替用于比较或简单的布尔字段=,最后查询将是:

string availableFruits = string.Join("|", FruitsList.Where(x => x.isAvailable) 
                .Select(x => x.Name)); 
+0

非常感谢。我纠正了代码,现在它的工作:) – sandaru

+0

@sandaru:高兴地帮助你 –