gpt4 book ai didi

c# - 将列表转换为 IEnumerable

转载 作者:IT王子 更新时间:2023-10-29 04:08:34 25 4
gpt4 key购买 nike

这里有一个棘手的问题。我正在尝试将列表项转换为 IEnumerable<SelectListItem> .

列表

dynamicTextInDatabase只需返回我的数据库中使用的所有枚举。目前只返回 1 和 2。数据类 simple 持有一个 int 值。

dynamicTextEnumsInDatabase与上面的列表相同,只是在实际存储我的枚举的类中。

dynamicTextEnumsAll是我的应用程序中可用的所有枚举的列表。当前:1、2 和 3。

dynamicTextEnumsAvaiable是所有未使用的枚举的列表。它组合所有枚举,然后删除数据库列表中的枚举。

我需要通过 dynamicTextEnumsAvaiable通过 ViewBag 到我的 View 以显示在下拉列表中。但是,它必须是 IEnumerable<SelectListItem>而不是 List .

代码

        var dynamicTextInDatabase = new List<DynamicTextEnumData>();
var dynamicTextEnumsInDatabase = new List<DynamicTextEnum>();
var dynamicTextEnumsAll = new List<DynamicTextEnum>();
IEnumerable<SelectListItem> list;

using (var proxy = new Proxy<IDynamicText>())
{
dynamicTextInDatabase = proxy.Channel.DynamicTextGetActiveEnums(Helper.GetCallingUser());
}

foreach (DynamicTextEnumData item in dynamicTextInDatabase)
{
var dynamicTextEnum = (DynamicTextEnum)item.DynamicTextEnum;
dynamicTextEnumsInDatabase.Add(dynamicTextEnum);
}

foreach (DynamicTextEnum item in Enum.GetValues(typeof(DynamicTextEnum)))
{
dynamicTextEnumsAll.Add(item);
}

var dynamicTextEnumsAvaiable = dynamicTextEnumsAll.Except(dynamicTextEnumsInDatabase).ToList();

if (dynamicTextEnumsAvaiable.Count == 0)
{
TempData["Error"] = "To update the text of a message or warning, please select it from the grid below.";
return RedirectToAction("Index");
}

ViewBag.AvaiableEnums = dynamicTextEnumsAvaiable;
return View();

最佳答案

也许试试这个? (未经测试)

ViewBag.AvaiableEnums = dynamicTextEnumsAvaiable.Select(x => 
new SelectListItem()
{
Text = x.ToString()
});

关于c# - 将列表转换为 IEnumerable<SelectListItem>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380994/

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