C#中的字典,其中没有显示Int []值列表

时间:2015-08-11 17:38:39

标签: c# .net dictionary

我正在尝试显示字典函数中的值,但它不显示值,它显示的是 -

1007 System.Collections.Generic.List`1[System.Int32[]] 

1006 System.Collections.Generic.List`1[System.Int32[]] 

1009 System.Collections.Generic.List`1[System.Int32[]] 

1008 System.Collections.Generic.List`1[System.Int32[]]

我正在使用的代码如下所示

    clsCollaborativeFilter mri = new clsCollaborativeFilter();
    Dictionary<int, List<int[]>> movRecommendations = mri.aList1();

    foreach (KeyValuePair<int, List<int[]>> kvp in movRecommendations)
    {
        da.Text += kvp.Key;
        da.Text += " ";
        da.Text += kvp.Value;
        da.Text += "<br/>";
    }
    return da.Text;

我似乎无法理解为什么会发生这种情况

5 个答案:

答案 0 :(得分:1)

您要将List Array ints da.Text += kvp.Value;添加到字符串中,在List行中,它正在做什么,是否正在添加< Array da.Text += String.Join(", ", kvp.Value.SelectMany(i => i)); 的{​​{1}}的签名因为它并不确切地知道您要做什么。

你能做的是:

StringBuilder sb = new StringBuilder();
foreach(Int32 key in movRecommendations.Key) {
    List<Int32[]> listOfArrays = movRecommendations[ key ];

    sb.Append( key );
    sb.AppendLine();
    foreach(Int32[] array in listOfArrays) {
        Boolean isFirst = true;
        foreach(Int32 val in array) {
            if( !isFirst ) sb.Append( ", " );
            sb.Append( val );
            isFirst = false;
        }
        sb.AppendLine();
    }
    sb.AppendLine("<br />");
}
da.Text = sb.ToString();

答案 1 :(得分:1)

...或者假设它确实是一个列表的字典列表,那么:

@IBAction

答案 2 :(得分:0)

我认为你真正想要的是:

Dictionary< int, List<int> >

... List<int[]>对我来说没有多大意义。

答案 3 :(得分:0)

clsCollaborativeFilter mri = new clsCollaborativeFilter();
Dictionary<int, List<int[]>> movRecommendations = mri.aList1();

foreach (KeyValuePair<int, List<int[]>> kvp in movRecommendations)
{
    da.Text += kvp.Key;
    da.Text += " ";
    da.Text += string.Join(",",kvp.Value);
    da.Text += "<br/>";
}
return da.Text;

答案 4 :(得分:0)

Dictionary<int, List<int[]>> movRecommendations = new Dictionary<int, List<int[]>>(){
    {0, new List<int[]>(){ new int[]{1, 2, 3} }},
    {1, new List<int[]>(){ new int[]{7, 8, 9} }}
};
string da = String.Empty; 
foreach (KeyValuePair<int, List<int[]>> kvp in movRecommendations)
{
    da += kvp.Key;
    da += " ";
    da += String.Join(", ", kvp.Value.SelectMany(i => i));
    da += "<br/>";
}
Console.WriteLine (da);

这将写出0 1, 2, 3<br/>1 7, 8, 9<br/>