我在从LINQ查询中选择多个值时遇到问题。我实际上可以得到我想要的结果,但这不是我想要的......
这是我的疑问。
var getMovie = from item in entList where item.EType() ==
"Movie" orderby item.Rating select new { item.Title, item.Rating };
这是我得到的结果。
{ Title = Terminator 2: Judgement Day, Rating = 1 }
我在这样的列表框中显示结果
foreach(var items in getMovie)
{
Results.Items.Add(items);
}
有没有更好的方法来解决这个问题,所以我可以获得价值,而没有大括号所以看起来像这样或类似的东西?
终结者2:判决/ 1
答案 0 :(得分:2)
这不是获取数据的问题,使用您的列表框正确呈现是一个问题。您当前的实现使用默认的ToString
;你想要一个自定义标题,所以你需要告诉列表框如何获得它。
这是一种方法:
var getMovie = from item in entList
where item.EType() == "Movie"
orderby item.Rating select new {
Id = item.Id
, Display = item.Title + " / " + item.Rating
};
以常规方式将这些项目添加到列表框中,并按如下方式设置ValueMember
和DisplayMember
:
Results.ValueMember = "Id";
Results.DisplayMember = "Display";
答案 1 :(得分:1)
你 自己获取值。您正在检索由new { item.Title, item.Rating }
生成的一系列匿名类型实例。您可以随意访问这些属性并格式化对象。
您对于为调试目的而存在的匿名类型的内置ToString
感到困惑。