Linq to sql Linq到数据集语法:如何从查询中正确选择特定字段并使用它们
当我简单地说“selectc”时,下面的代码可以工作,但我想选择id、名字和姓氏,而不是整行,因为它相当长 我对林克是个新手。我曾经使用匿名类型,但是被指示定义所有变量(因此所有变量都是“IEnumeralbe(of DataRow)”)。但是我遇到的示例中没有一个使用我想要的方式“选择”,并且它们不倾向于使用查询中选择的字段继续进行for循环 如有任何建议,将不胜感激 提前谢谢Linq to sql Linq到数据集语法:如何从查询中正确选择特定字段并使用它们,linq-to-sql,Linq To Sql,当我简单地说“selectc”时,下面的代码可以工作,但我想选择id、名字和姓氏,而不是整行,因为它相当长 我对林克是个新手。我曾经使用匿名类型,但是被指示定义所有变量(因此所有变量都是“IEnumeralbe(of DataRow)”)。但是我遇到的示例中没有一个使用我想要的方式“选择”,并且它们不倾向于使用查询中选择的字段继续进行for循环 如有任何建议,将不胜感激 提前谢谢 没有意义。整个表已经在内存中,因此您所要做的就是增加开销。 LINQ从不复制值,所以优化它的唯一方法是完全删除列
没有意义。整个表已经在内存中,因此您所要做的就是增加开销。
LINQ从不复制值,所以优化它的唯一方法是完全删除列 要回答此问题,您需要选择以下选项: 您还可以使用与此等效的当前语法
因为您正在创建一个匿名类型,所以不能将其声明为
IEnumerable(属于DataRow)
;您必须使用选项推断
并写入Dim candMatches=From…
选项推断没有问题。谢谢!我想我需要对Linq做更多的研究,以正确掌握它的窍门。
Dim cands As IEnumerable(Of DataRow) = ds.Tables("Candidates").AsEnumerable()
Dim candPlace As IEnumerable(Of DataRow) = ds.Tables("JobCandPlacement").AsEnumerable()
Dim candComp As IEnumerable(Of DataRow) = ds.Tables(dctSearchCriteria.Values(i).ToString).AsEnumerable()
Dim strCandID As String = ""
Dim candMatches As IEnumerable(Of DataRow) = From c In cands, cc In candComp, cp In candPlace
Where c.Field(Of String)("candidateID") = cc.Field(Of String)("candID") _
AndAlso cc.Field(Of String)("compSkill") = cSkill _
Select c("candidateID"), c("firstName"), c("lastName")
For Each cm As DataRow In candMatches
strCandID = ""
strCandID = cm("candidateID")
increaseCandScore(strCandID)
If Not dtSuitableCands.Rows.Contains(strCandID) Then
Dim dr As DataRow = dtSuitableCands.NewRow
dr("candID") = cm("candidateID")
dr("candFName") = cm("firstName")
dr("candLName") = cm("lastName")
AddNewRow(dr)
End If
Next
Select New With { .ID = c("candidateID"), ... }