C#Linq列表比较和更新列表

时间:2012-09-20 06:27:36

标签: c# linq

我有2个包含不同类型的列表。一个是string[],另一个是List<SelectListItem>

SelectListItem(它在mvc中):

public string Text {get;set;}
public string Value {get;set;}
public bool Selected {get;set;}

我的string[]只包含一些文字值。

我要做的是,获取string[]中的内容,然后为"Selected = true"匹配设置Value,为不匹配的内容设置"Selected = false"

所以我要说string[]是:

Test1
Test2
Test3

我的List<SelectListItem>是:

new SelectListItem { Text = "Testing", Value = "Test1", Selected = false },
new SelectListItem { Text = "Testing", Value = "Test4", Selected = true }

在上面的List<SelectListItem>中,我有一场比赛。所以我想做的是,为特定条目设置Selected = true,这样我最终得到:

new SelectListItem { Text = "Testing", Value = "Test1", Selected = true },
new SelectListItem { Text = "Testing", Value = "Test4", Selected = false }

我将如何实现这一目标?

3 个答案:

答案 0 :(得分:2)

foreach(var i in selectListItemList)
    i.Selected = stringArray.Contains(i.Value);

或使用List.ForEach

selectListItemList.ForEach(i => i.Selected = stringArray.Contains(i.Value));

答案 1 :(得分:1)

怎么样

list.ForEach(x => x.Selected = stringarray.Contains(x.Value))

答案 2 :(得分:0)

var items = SelectListItems.Where(p=>stringArray.Contains(p));;
foreach(var item in items)
    item.Selected=true;