通用列表中的数组

时间:2018-11-05 00:44:37

标签: c# arrays generic-list

我需要创建一个通用列表,并将数据保留在Array类中。
数组将与我在构造函数方法中提到的一样多(我愿意接受更多实用的解决方案和想法)。

我的问题是,当我在列表中打印时,我没有得到int值,而且我找不到如何逐个访问该数据的方法。

public class Demo
{
    public int GrupKodu { get; set; }
    public string GrupAd { get; set; }
    public int[] Notlar;

    public Demo(int GrupKodu, string GrupAd, int NotAdet , int[] a  )
    {
        this.GrupKodu = GrupKodu;
        this.GrupAd = GrupAd;
        this.Notlar = new int[NotAdet];
        this.Notlar = a;
    }

    public override string ToString()
    {
        return $"Grup Kodu : {this.GrupKodu} Grup Adı : {this.GrupAd} Notlar : {Notlar}";
    }
}

我正在使用数据插入和for循环进行调用。
我使用Foreach循环尝试了相同的打印操作,但是Sonush并没有改变。

static void Main(string[] args)
{
    List<Demo> DemoListe = new List<Demo>();
    DemoListe.Add(new Demo(101, "umt", 6, new int[] { 1, 2, 3, 4, 5, 6 }));
    DemoListe.Add(new Demo(101, "umt", 2, new int[] { 1, 2,}));
    DemoListe.Add(new Demo(101, "umt", 3, new int[] { 1, 2, 3}));
    DemoListe.Add(new Demo(101, "umt", 7, new int[] { 1, 2, 3, 4, 5, 6,7 }));
    DemoListe.Add(new Demo(101, "umt", 8, new int[] { 1, 2, 3, 4, 5, 6 ,7,8}));

    foreach (Demo item in DemoListe)
    {
        Console.WriteLine(item.ToString());
    }

    for (int i = 0; i < DemoListe.Count(); i++)
    {
        Console.WriteLine($"GrupAd : {DemoListe[i].GrupAd}  GrupKod : {DemoListe[i].GrupKodu}  Notlar : {DemoListe[i].Notlar.ToArray<int>()}");
    }
}

2 个答案:

答案 0 :(得分:3)

您可以在String.Join覆盖中使用ToString,如下所示:

public override string ToString()
{
    return $"Grup Kodu : {this.GrupKodu} Grup Adı : {this.GrupAd} Notlar : {String.Join(", ", Notlar)}";
}

String.Join将可枚举转换为由分隔符分隔的字符串。

因此,如果Notlar = [1,2,3]String.Join(", ", Notlar) = "1, 2, 3"

答案 1 :(得分:0)

您可以按照上述答案使用Join来简单地将数组弄平,或者一一打印内容:

public override string ToString()
{
    StringBuilder sb = new StringBuilder();

    if (Notlar.Length > 0)
    {
        foreach (int s in Notlar)
        {
            sb.Append(" ");
            sb.Append(s.ToString());
        }
    }

 return $"Grup Kodu : {this.GrupKodu} Grup Adı : {this.GrupAd} Notlar : {sb.ToString()}";
 }