在 LINQ 表达式中创建选定项时获取序号位置

发布于 2024-11-27 07:46:51 字数 524 浏览 0 评论 0原文

在 LINQ 表达式中创建选定项目时如何获取序数位置?例如:

var alphaordinals = new string[] { "A", "B", "C", "D", "E" };  // etc.
var q = from car in datacontext.Cars
        select new InventoryItem
        {
            Name = car.Name,
            Price = car.Price,
            UIElement = "Car " + car.Id.ToString() + ???                        
        };
return q.ToList();

我希望汽车列表的 InventoryItem.UIElement 类似于:

Car 27 A

Car 28 B

Car 31 C

Car 48 D

等。

How can I get the ordinal position while creating selected Items in a LINQ expression? For example:

var alphaordinals = new string[] { "A", "B", "C", "D", "E" };  // etc.
var q = from car in datacontext.Cars
        select new InventoryItem
        {
            Name = car.Name,
            Price = car.Price,
            UIElement = "Car " + car.Id.ToString() + ???                        
        };
return q.ToList();

I want the InventoryItem.UIElement of the list of Cars to be like :

Car 27 A

Car 28 B

Car 31 C

Car 48 D

etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

望她远 2024-12-04 07:46:51

使用 Select 的重载提供索引和值。在这种情况下,我将使用 AsEnumerable 退出数据库上下文,这并不是您真正想要做这项工作的地方:(

string[] alphaOrdinals = { "A", "B", "C", "D", "E" };
var query = dataContext.Cars
                       .AsEnumerable()
                       .Select((car, index) => new InventoryItem { 
                                  Name = car.Name,
                                  Price = car.Price,
                                  UIElement = string.Format("Car {0} {1}",
                                                            car.Id,
                                                            alphaOrdinals[index])
                               }).ToList();

您可以将 alphaOrdinals 更改为顺便说一句,没有对代码进行任何其他更改的字符串。)

Use the overload of Select which provides the index as well as the value. In this case I'd use AsEnumerable to get out of the database context, which isn't really where you want to be doing this work:

string[] alphaOrdinals = { "A", "B", "C", "D", "E" };
var query = dataContext.Cars
                       .AsEnumerable()
                       .Select((car, index) => new InventoryItem { 
                                  Name = car.Name,
                                  Price = car.Price,
                                  UIElement = string.Format("Car {0} {1}",
                                                            car.Id,
                                                            alphaOrdinals[index])
                               }).ToList();

(You can change alphaOrdinals to a string without any other change to the code, btw.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文