不确定如何为这个问题写一个好标题... :)
我是Linq的新手,不确定使用哪种语法解决此问题
class MainClass()
{
string MainKey {get;set;}
string MainName {get;set;}
List<SmallObject> MainList {get;set}
}
class SmallObject()
{
string SmallKey {get;set}
}
Linq:
myTable包含4个字符串字段(Field1,Field2,Field3,Field4)
var mainQuery = (from v from myTable
select v)
var myQuery = (from v in mainQuery
select new MainClass()
{
MainKey = v.Field1,
MainName = v.Field2,
MainList = #whats the correct syntax here?#
})
标有#这里的正确语法是什么?#是我的问题。
我想将v.Field3和v.Field4作为项目添加到MainClass的MainList对象中,但是我不知道该怎么做。
如果有人可以帮助,我感到很高兴。
最佳答案
您可以创建一个List<T>
(或任何其他集合),并使用collection initializer向其中添加项目:
MainList = new List<SmallObject> { v.Field3, v.Field4 }
更新:
由于
Field3
和Field4
是字符串,因此您只需做已经使它们成为SmallObject
的字符串即可:MainList = new List<SmallObject>
{
new SmallObject { SmallKey = v.Field3 },
new SmallObject { SmallKey = v.Field4 },
}
或者,您可以添加一个带有字符串参数的
SmallObject
构造函数,并像new SmallObject(v.Field3)
一样使用它。