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

本文关键字:选择 单个 LINQ 查询 | 更新日期: 2023-09-27 17:56:02

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

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

这不是获取数据的问题,而是使用列表框正确呈现数据的问题。您当前的实现使用默认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";

正在获取值本身。您正在检索由 new { item.Title, item.Rating } 生成的匿名类型实例序列。您可以访问这些属性并根据需要设置对象的格式。

您对用于调试目的的匿名类型的内置ToString感到困惑。