c# - 从列表框中快速选择一个对象

标签 c#

当用户在列表框中选择某些内容时,我正在尝试检索数组中的对象。

目前列表框有一个文件名列表,我实现解决方案的方法是遍历数组并找到匹配的文件名,并在找到后使用对象引用。

foreach (CPSImage img in objWholeLibrary)
        {
            if (Path.GetFileName(img.FileName).Equals(lbxImageObjects.SelectedItem.ToString()))
            {
                currImage = img;
                break;
            }
        }
        UpdateDisplay();

有没有更有效的方法?而不是依赖字符串来匹配对象?

最佳答案

如果您使用的 .NET Framework 版本至少为 3.5,那么您可以使用 LINQ 来完成:

currImage = objWholeLibrary.FirstOrDefault(
    img => Path.GetFileName(img.FileName).Equals(
        lbxImageObjects.SelectedItem.ToString())
    );
UpdateDisplay();

执行速度应该是一样的,只是代码看起来更干净一些。

关于c# - 从列表框中快速选择一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9585625/

相关文章:

c# - 错误 : IEnumerable could Not be defined in non-generic static class

c# - 基于位置的一致随机数(不是基于噪声)

c# - 使用带有 Entity Framework 的动态字段按子记录排序

c# - Linq to SQL .Equals 将 int 与字符串进行比较时返回 true --> Id.Equals ("5") 返回 true

C# 基于 cookie 的授权

c# - 为什么 Visual Studio 有时不转到我的断点?

c# - 如何编写扩展函数以返回自定义类型的平均值?

C# 动态类型初始化器

c# - 等待/异步问题

c# - CMake CSharp 引用 nuget 包