我有一个列表,我在其中为不同的类属性添加了一些值,然后我使用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);
}
这应该找到一个价格(瑞典语中的Pris),然后小于34.我将4个“值”输入到我的var specifikvara中,然后我将其打印出来。但我想打印出artikel(Varonamn)的名称,但我只在控制台“Consoleapplikation1.Artikel”上收到此消息。如何更改它以便写出“Skinka”或“Räkost”或其中任何一个?
答案 0 :(得分:1)
您正在选择一堆Artikel
类型对象,这就是您获得默认ToString()
值的原因。你可以:
1. select item.Varonamn
2. Console.WriteLine("{0}", item.Varonamn);
3 override ToString in Artikel object
答案 1 :(得分:0)
在您的示例中,循环中的item
类型为Artikel
。如果需要打印其名称,请打印名称为
Console.WriteLine("{0}", item.Varonamn);
您也可以引用其他属性:
Console.WriteLine("{0} : {1}", item.Varonamn, item.Pris);