如何在c#中为查询添加额外的值
本文关键字:添加 查询 | 更新日期: 2023-09-27 18:05:54
我有一个这样的查询
var values = ProjectContext.controloptions.Where(i => i.id == id).Select(i => new {
i.value
}).ToList();
现在值包含4条记录,我想再添加2条记录,如
values.Insert(0, new { "Select" });
values.Add("AddNew");
但是显示错误。其中i.value
为数据库中的varchar
字段。
如何在没有额外字段的情况下将两条记录添加到列表中
您正在选择匿名类型。只能通过匹配属性及其类型的名称来添加该类型的另一个对象,如下所示:
var values = new[]{ new Options{value = 666, id = 5}} //array to demo purposes
.Where(i => i.id == 5)
.Select(i => new {
value = i.value.ToString()
})
.ToList();
values.Add(new {value = "Select"});
values.Insert(0, new {value = "AddNew"});
现在values
包含三个匿名类型的对象(一个属性value
为string
类型),可以打印为
AddNew
666
Select
考虑创建新的自定义类,然后在Select
投影中使用它,像这样:
class MyCustomClass
{
public string Value { get; set; }
}
然后在Select
List<MyCustomClass> values = new[]{ new Options{value = 666, id = 5}}
.Where(i => i.id == 5)
.Select(i => new MyCustomClass {
Value = i.value.ToString()
})
.ToList();
values.Add(new MyCustomClass { Value = "Select"});
values.Insert(0, new MyCustomClass { Value = "AddNew"});
现在你的列表是命名类型List<MyCustomClass>
和元素可以添加和删除它与命名类