1

会社名でリストを並べ替えようとしています。次のコードを試しましたが、これはCoShortではなくCompIDでリストを並べ替えます。これをCoShortで並べ替えるにはどうすればよいですか?

Public Shared Function [SelectCompanyData](iElement() As Integer) As List(Of CompanyList)

    Dim db As New EntryDataContext()

    Dim q As IQueryable(Of CompanyList) = (From Act_Sub_Manfu_Link In db.Act_Sub_Manfu_Links _
            Join Company In db.Companies _
            On Act_Sub_Manfu_Link.CompID Equals Company.CompID _
            Where iElement.Contains(Act_Sub_Manfu_Link.ACCN) _
            And Company.In_Dir _
            Select New CompanyList With { _
                .CompID = Company.CompID, _
                .InDir = Company.In_Dir, _
                .CoShort = Company.CoShort _
                }).Distinct

    q.OrderBy(Function(c) c.CoShort)

    Dim list As List(Of CompanyList) = q.ToList

    Return list

End Function
4

2 に答える 2

6

順序付けられたコレクションを変数に割り当てる必要があります。

Dim oq As IOrderedQueryable(Of CompanyList) = q.OrderBy(Function(c) c.CoShort)

そして、それを使用して結果のリストを取得します。

Dim list As List(Of CompanyList) = oq.ToList()
于 2013-03-26T14:21:07.583 に答える
1

戻り値以外に割り当てる必要はありません

Public Function SelectCompanyData(iElement() As Integer) As List(Of CompanyList)
    Dim db As New EntryDataContext()
    Return (From Act_Sub_Manfu_Link In db.Act_Sub_Manfu_Links _
            Join Company In db.Companies _
            On Act_Sub_Manfu_Link.CompID Equals Company.CompID _
            Where iElement.Contains(Act_Sub_Manfu_Link.ACCN) _
            And Company.In_Dir _
            Select New CompanyList With { _
                .CompID = Company.CompID, _
                .InDir = Company.In_Dir, _
                .CoShort = Company.CoShort _
                }).Distinct().OrderBy(Function(c) c.CoShort).ToList()
End Function
于 2013-03-26T15:18:32.397 に答える