不确定如何为这个问题写一个好标题... :)

我是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 }


更新:

由于Field3Field4是字符串,因此您只需做已经使它们成为SmallObject的字符串即可:

MainList = new List<SmallObject>
{
    new SmallObject { SmallKey = v.Field3 },
    new SmallObject { SmallKey = v.Field4 },
}


或者,您可以添加一个带有字符串参数的SmallObject构造函数,并像new SmallObject(v.Field3)一样使用它。

10-01 08:44