【问题标题】:I want to get right value from list我想从列表中获得正确的价值
【发布时间】:2014-11-15 19:27:10
【问题描述】:

我有一个列表,其中我将一些值放入不同的类属性,然后我使用 linq 查询来整理特定值。

            List<Artikel> Minlista = new List<Artikel>();

        Minlista.Add(new Artikel { Varonamn = "Mjölk", Pris = 14.90, kategori = new Kategori {Namn = "Mejeri"}, });
        Minlista.Add(new Artikel { Varonamn = "Apelsin", Pris = 7.90, kategori = new Kategori { Namn = "Frukt" } });
        Minlista.Add(new Artikel { Varonamn = "Skinka", Pris = 20, kategori = new Kategori { Namn = "Kött" }, });
        Minlista.Add(new Artikel { Varonamn = "Räkost", Pris = 33, kategori = new Kategori { Namn = "Mejeri" }, });
        Minlista.Add(new Artikel { Varonamn = "Köttfärs", Pris = 45, kategori = new Kategori { Namn = "Kött" }, });

        var specifikvara = from item in Minlista
                    where item.Pris < 34
                    select item;
        foreach (var item in specifikvara)
        {
            Console.WriteLine("{0}", item);
        }

这应该找到一个小于 34 的价格(瑞典语中的 Pris)。我在我的 var specifikvara 中获取了 4 个“值”,然后将其打印出来。但我想打印出 artikel (Varonamn) 的名称,但我只在控制台“Consoleapplikation1.Artikel”上收到此消息。我怎样才能改变它,让它写出“Skinka”或“Räkost”或其中任何一个?

【问题讨论】:

    标签: linq list class console


    【解决方案1】:

    您正在选择一堆 Artikel 类型的对象,这就是您获得默认 ToString() 值的原因。您可以:

    1. select item.Varonamn 
    2. Console.WriteLine("{0}", item.Varonamn);
    3 override ToString in Artikel object
    

    【讨论】:

      【解决方案2】:

      在您的示例中,循环中的itemArtikel 类型。如果需要打印其名称,请打印具有该名称的属性:

      Console.WriteLine("{0}", item.Varonamn);
      

      你也可以引用其他属性:

      Console.WriteLine("{0} : {1}", item.Varonamn, item.Pris);
      

      【讨论】:

      • 天哪,这么简单?克里斯特。非常感谢:)
      猜你喜欢
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 2022-07-31
      相关资源
      最近更新 更多