3

異なるタイプを含む 2 つのリストがあります。1 つは でstring[]、もう1 つはList<SelectListItem>です。

SelectListItem(mvcにあります):

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

My string[]is には、いくつかのテキスト値が含まれているだけです。

私がやろうとしているのは、 にあるものをすべて取得し、一致するものと一致しないもの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>では、1つの一致があります。したがって、私がやりたいことは、その特定のエントリに対して Selected = true を設定して、次のようにすることです。

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

どうすればこれを達成できますか?

4

3 に答える 3

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

または使用List.ForEach

selectListItemList.ForEach(i => i.Selected = stringArray.Contains(i.Value));
于 2012-09-20T06:31:06.510 に答える
1

どうですか

list.ForEach(x => x.Selected = stringarray.Contains(x.Value))
于 2012-09-20T06:31:46.820 に答える
0
var items = SelectListItems.Where(p=>stringArray.Contains(p));;
foreach(var item in items)
    item.Selected=true;
于 2012-09-20T06:33:46.097 に答える