gpt4 book ai didi

c# - 使用 Linq 将列表框项值转换为 int

转载 作者:行者123 更新时间:2023-12-03 22:58:46 25 4
gpt4 key购买 nike

我使用列表框显示数据库中表格的内容。每个列表框项都填充有设置为友好名称的 Text 属性,以及设置为唯一 ID 列的 Value 属性。数据库结构可能类似于以下内容:

CREATE TABLE GENERIC { FRIENDLY_NAME TEXT, ID INT }

我尝试了将近一个小时,使用 LINQ 将列表框的项目转换为 int[],但最终失败了。区分选中和未选中的项目也很重要。这是我最后写的:

System.Collections.Generic.LinkedList<int> 
selected = new LinkedList<int>(),
notSelected = new LinkedList<int>();

foreach (ListItem item in PhotoGalleryEdit_PhotoShoots.Items)
{
if (item.Selected)
selected.AddFirst(Convert.ToInt32(item.Value));
else
notSelected.AddFirst(Convert.ToInt32(item.Value));
}

int []arraySelected = selected.ToArray();
int []arrayNotSelected = notSelected.ToArray();

谁能展示这是如何在 LINQ 中完成的?

(我用 C# 编写所有代码,但欢迎用 VB 编写任何答案)

最佳答案

根据你的描述,我能想到的最简单的是:

var qry = from ListItem item in listbox.Items
select new {item.Selected, Value = Convert.ToInt32(item.Value)};

int[] arrSelected=qry.Where(x=>x.Selected).Select(x=>x.Value).ToArray();
int[] arrNotSelected=qry.Where(x=>!x.Selected).Select(x => x.Value).ToArray();

由于您使用的是 AddFirst,您可能还需要在某处使用 .Reverse() - 或者之后使用 Array.Reverse()

关于c# - 使用 Linq 将列表框项值转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com