为什么我们需要new在select对其中一个说法?
var runs = from sampleDataTable in db.SampleData
from sampleInfoTable in db.SampleInfo
where sampleDataTable.SampleInfo.SampleInfoId == sampleInfoTable.SampleInfoId
select new {sampleDataTable.Timestamp, sampleDataTable.SampleDataId, sampleInfoTable.Lane} ;
Run Code Online (Sandbox Code Playgroud)
和
var runs2 = from sampleDataTable in db.SampleData
from sampleInfoTable in db.SampleInfo
where sampleDataTable.SampleInfo.SampleInfoId == sampleInfoTable.SampleInfoId
&& sampleDataTable.Timestamp == timestamp
select sampleInfoTable.Lane;
Run Code Online (Sandbox Code Playgroud)
因为您选择的是新的匿名类型,而不是单个属性.
示例1将包含IQueryable您的匿名类型..
每个元素都将包含具有您定义的属性的类型.例如:
foreach (var result in resultset)
{
Console.Writeline(string.Format("{0}\n{1}\n{2}\n{3}\n",
result.TimeStamp,
result.SampleDataId,
result.Lane));
}
Run Code Online (Sandbox Code Playgroud)
我相信new是必需的,因为您正在创建一个包含select语句中的列和类型的新匿名类型.