在asp.net中返回2维数组c#

时间:2013-08-17 12:16:57

标签: asp.net arrays json multidimensional-array asmx

我正在使用.asmx网络服务,它将返回我希望返回的二维数组,如row1={'id1','name1'}, row2={'id2','name2'},但我无法这样做。

代码部分

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Array getAlbumsAndPhotos()
{
    DataTable resultText = new DataTable();
    resultText = AdminUserDataAccess.getAlbumsAndPhotosforAsmx();
    string[,] ResultResponse = new string[resultText.Rows.Count , resultText.Columns.Count];
    for (int i = 0; i < resultText.Rows.Count; i++)
    {

        for (int j = 0; j < resultText.Columns.Count; j++)
        {
            ResultResponse[i, j] = resultText.Rows[i][j].ToString();

        }
    }
    return ResultResponse;
}

这使我的输出为:

    [0,0]:"id1"
    [0,1]:"name1"
    [1,0]:"id2"
    [1,1]:"name2"

我希望返回两行而不是四行,其中包含单个第0个索引(带有id1和name1)和第一个索引(带有id2和name2)。需要某种类型的嵌套数组输出。但我无法这样做。任何帮助表示赞赏。 :)

编辑:解决方案

    [WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<string[]> getAlbumsAndPhotos()
{
    DataTable resultText = new DataTable();
    resultText = AdminUserDataAccess.getAlbumsAndPhotosforAsmx();
    string[] rowsValues = new string[resultText.Rows.Count];
    var list = new List<string[]>();
    for (int i = 0; i < resultText.Rows.Count; i++)
    {
        string col1 = resultText.Rows[i][0].ToString();
        string col2 = resultText.Rows[i][1].ToString();
        list.Add(new[] { col1, col2});
    }
    return list;

我可以使用List或Array列表来实现这一点。谢谢。 :)

0 个答案:

没有答案