我有一个这样的课程:
public class MyClass
{
public string Name { get; set; }
}
我有第二堂课:
public class SelectableItem
{
public MyClass Item { get; set; }
public bool Selected { get; set; }
}
我有一个IEnumerable
MyClass
列表,我希望将该列表读入SelectableItem
;像这样的东西:
IEnumerable<MyClass> class1List = FillListWithStuff();
IEnumerable<SelectableItem> newList = { class1List.Where(p => p.Name == "test"), false};
因此newList
包含class1List
的所有元素,并将其标记为Selected = false
。
答案 0 :(得分:3)
您需要Select
,因为您没有执行任何过滤:
class1List.Select(x => new SelectableItem { Item = x, Selected = false });
答案 1 :(得分:1)
对于那些喜欢查询语法的人:
var newList = from class1 in class1List
select new SelectableItem { Item = class1 };
这当然会在编译之前转换为
var newList = class1List.Select(class1 => new SelectableItem { Item = class1 });
按照塞尔曼22的回答。
答案 2 :(得分:0)
使用选择并从第一个列表中的值复制Item值,并将Selected设置为false。
IEnumerable<SelectableItem> newList = class1List.Select(x => new SelectableItem { Item = x.Item, Selected = false});