在多个索引 C# 上搜索静态数组

Searching a static array on Multiple Indexes C#

这个问题可能不仅仅是要使用什么集合,而是定义数据后最好使用什么方法来访问数据。我是 C# 和 .NET 的新手,但我已经完成了几个简单的项目,需要一些指导来搜索较小的静态数据集。具体来说,我有一个 class 定义类似于:

public class rlsSoftwareVersions
{
    public double   dReleaseNum { get; set; }
    public string   strReleaseName { get; set; }
    public long     lConfigSchema { get; set; }
    public long     lProgramSchema { get; set; }
}

我们有一个简单的 class 对象数组,定义如下:

static rlsSoftwareVersions[] rlsSoftware = {   
    new rlsSoftwareVersions { dReleaseNum = 4.0, strReleaseName = "Chronos", lConfigSchema = 0x04, lProgramSchema = 0x0DB4 },
    new rlsSoftwareVersions { dReleaseNum = 4.1, strReleaseName = "Hera",   lConfigSchema = 0x06, lProgramSchema = 0x0DB5 },
    new rlsSoftwareVersions { dReleaseNum = 5.0, strReleaseName = "Zeus",   lConfigSchema = 0x0C, lProgramSchema = 0x0DB5 },
    new rlsSoftwareVersions { dReleaseNum = 5.1, strReleaseName = "Poseidon",lConfigSchema = 0x0C, lProgramSchema = 0x0DBB }
    .. .. .. .. 
    .. .. .. .. 
    .. .. .. .. 
};

该数组扩展了大约 30 个条目。我的问题是这样的。我一直在学习如何使用字典按索引进行搜索。但这似乎只允许搜索一个索引。我需要的是能够通过基于任何属性进行搜索并在匹配对象的其他成员属性中获取值的 returned 集合来访问此类数据(在数组中)。

例如,在一种情况下,当我将 dReleaseNum 属性 匹配到 4.0 时,我想获取 return 的 lConfigSchema 的值集合。然后,下次我想要 dReleaseNum 的值集合时,lConfigSchema 属性 等于 0x0C。我想基本上对任何 属性 进行这种查找并获得任何其他关联 属性.

的结果(集合)

我刚刚看完字典,但它们似乎只适用于单个索引。我要么看错了,要么看使用错误的 class 来做到这一点。你有什么方向建议可以推动我前进吗?感觉应该用刀却用锤子..

警告:我无法为此创建数据库。它需要全部在一个没有外部数据库或文件的结果可执行文件中。这就是我创建内部静态数组的原因...

谢谢

为什么不使用 LINQ?

IEnumerable<rlsSoftwareVersions> result = rlsSoftwareVersions.Where(item => item.dReleaseNumber == 4.0);

foreach(var rlsSoftwareVersion in result)
{
    // do something
} 

这里有一些有用的例子:https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b