c# - 访问类对象列表
问题描述
我试图让以下工作:
一个名为 的类Caption
,我在其中填充一个列表 - 添加Items
到类列表中,然后我想在查找方法中引用类值列表
public class Caption
{
readonly CaptionKey _CaptionKey; //Enum list
readonly string _Description;
public Caption(CaptionKey captionKey, string description)
{
_CaptionKey = captionKey;
_Description = description;
}
public CaptionKey CaptionKey { get { return _CaptionKey; } }
public string Description { get { return _Description; } }
}
这是创建类列表的类
public class InitCaptions
public static List<Caption> _Captions = new List<Caption>();
// the class access I need
public static string LookupCaption( CaptionKey )
{
//? How to return the description for
}
问题在于从另一个类和进程中引用类列表。
我可以看到调试器中的值在
System.Collections.Generic.List<MyNamespace.Controllers.Captions>
那里——我只是不确定如何正确引用它。
我应该补充一下——这是一个 MVC 解决方案——所以列表是在应用程序启动时创建的,但引用调用是从报告中完成的——使用 ReportViewer。列表使用 Intellisense 在代码中显示,但运行时 - 列表不存在。
解决方案
假设 SimpleDictionary<>
不适合您的需求(由于您未指定的原因),那么要从 List 中查找并返回一个项目,您可以使用 List.Find 方法,该方法接受一个委托并像这样使用:
Caption foundItem = _Captions.Find(delegate (Caption obj) { return obj.Description.equals("Find this Description"); });
如果有多个,那么它将返回它找到的第一个。
还有一个FindAll
(....) 版本,它将返回所有匹配项的新列表。
推荐阅读
- c++ - 错误:无法将 'double (*)[(order + -1)]' 转换为 'double (*)[100]
- javascript - 将自定义 ajax 按钮添加到 WooCommerce 管理员订单列表
- c - 在 printf 中打印八进制文字
- javascript - 如何以角度在所有打开的选项卡中呈现更新的数据
- python - Big Sur 更新后修复 Anaconda Python
- c - 为什么我不能让球跳起来?它像火箭一样飞起来
- mysql - 将表重命名为自身的新版本时如何减少(或消除)mysql“表不存在”错误
- fedora - Fedora 33 上的 Gnome Box 无法打开
- angular - 错误类型错误:无法在 TenantsDetailsComponent_Template 读取未定义的属性“street1”
- sql-server - 在 SQL Server 中重新同步目标服务器