2010-05-03 22 views
0

我在NotSelectedList中有以下内容。如何在LInq中编写简单代码

public List<TestModel> SelectedList = new List<TestModel>(); 
public List<TestModel>NotSelectedList = new List<TestModel>(); 
NotificationDetailsModel projects = new NotificationDetailsModel(); 
projects.ProjectID = Convert.ToInt32(Row["ProjectID"]); 
projects.Valid= Convert.ToBoolean(Row["Validity"]); 
NotSelectedList.Add(projects); 

我如何写一个简单的代码在LINQ从NotSelectedList选择在那里效力==真与存储在SelectedList的数据?

回答

0

试试这个:

var results = NotSelectedList.Where(x => x.Valid); 
foreach (var item in results) 
    SelectList.Add(item); 

虽然性能方面的原因,你可能会更好做这样的事情:

foreach (var item in NotSelectedList) 
{ 
    if (item.Valid) 
     SelectList.Add(item); 
} 
+0

在第一行中,where的返回值不是查询的结果,而是查询对象。变量名称“results”是一个令人误解的名字。 – 2010-05-03 05:56:12

+0

-1甚至不使用LINQ语法 – RCIX 2010-05-03 06:11:02

+2

@RCIX:'NotSelectedList.Where(x => x.Valid);'是完全有效的LINQ语法。 – 2010-05-03 06:54:03

4
var query = from ns in NotSelectedList 
      from n in SelectedList 
      where ns.Valid && ns.ProjectID == n.ProjectID 
      select ns; 

希望这将帮助你

1

下将从NotSelectedList中选择Validity = true的项目并将它们放入SelectedList中:

SelectedList.AddRange(NotSelectedList.Where(item => item.Validity));