从单个LINQ查询中选择多个值

时间:2015-06-14 17:17:36

标签: c# linq select

我在从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

2 个答案:

答案 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
    };

以常规方式将这些项目添加到列表框中,并按如下方式设置ValueMemberDisplayMember

Results.ValueMember = "Id";
Results.DisplayMember = "Display";

答案 1 :(得分:1)

自己获取值。您正在检索由new { item.Title, item.Rating }生成的一系列匿名类型实例。您可以随意访问这些属性并格式化对象。

您对于为调试目的而存在的匿名类型的内置ToString感到困惑。