0

さまざまな方法でリストを並べ替えようとしましたが、どれもうまくいきません。私は何か間違ったことをしているに違いない。detailsリストを並べ替えてシリアル化し、UI に送信して、並べ替えられたリストを UI に表示したいと考えています。したがって、基本的にReturn strJsonは、並べ替えられた(並べ替えプロパティで並べ替えられた)リストを返したいと思います。私が理にかなっていることを願っています。

<WebMethod(Description:="Get Home Page Items Page Wise", EnableSession:=True)> _
    <ScriptMethod(ResponseFormat:=ResponseFormat.Json)>
    Public Function GetHomePageItemsPageWise(ByVal pageIndex As String) As Object
        Dim details As New List(Of HomePageObject)()

        Dim idObject As New List(Of GetIdBasedOnInterest)()
        idObject = CType(BLL.GetDataByInterests(CType(BLL.GetAccIdFromSocialAuthSession(), Integer)), List(Of GetIdBasedOnInterest))


        Dim cmd As DbCommand = _db.GetStoredProcCommand("GetHomePageObjectPageWise")
        _db.AddInParameter(cmd, "PageIndex", SqlDbType.VarChar, pageIndex)
        _db.AddInParameter(cmd, "PageSize", SqlDbType.Int, 10)
        _db.AddOutParameter(cmd, "PageCount", SqlDbType.Int, 1)
        _db.AddInParameter(cmd, "whereStoryID", SqlDbType.VarChar, idObject(0).StoryIds)
        _db.AddInParameter(cmd, "whereAlbumID", SqlDbType.VarChar, idObject(0).AlbumIds)
        _db.AddInParameter(cmd, "wherePictureID", SqlDbType.VarChar, idObject(0).PictureIds)

        Try
            Using ds As DataSet = _db.ExecuteDataSet(cmd)
                For Each rs As DataRow In ds.Tables(0).Rows
                    Dim homePageObject As New HomePageObject()

                    homePageObject.AlbumId = rs("AlbumId").ToString()
                    homePageObject.StoryTitle = rs("StoryTitle").ToString()
                    homePageObject.AlbumName = rs("AlbumName").ToString()
                    homePageObject.AlbumCover = rs("AlbumCover").ToString()
                    homePageObject.Votes = rs("Votes").ToString()
                    homePageObject.PictureId = rs("PictureId").ToString()
                    homePageObject.TableName = rs("tableName").ToString()
                    homePageObject.PageCount = CType(cmd.Parameters("@PageCount").Value, Integer)
                    homePageObject.Sort = Guid.NewGuid()
                    details.Add(homePageObject)
                    Next
            End Using
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

        Dim js As New JavaScriptSerializer()
        Dim strJson As String = js.Serialize(details.ToArray)
        Return strJson
    End Function
4

1 に答える 1

1

リストをランダム化するには、次のようにします。(そして、これを達成するためにSortプロパティは必要ありません)HomePageObject

Dim rnd As new Random()
Dim strJson As String = js.Serialize(details.OrderBy(Function(x) rnd.Next()).ToArray())
于 2013-01-01T19:20:08.523 に答える