簡體   English   中英

在多個索引上搜索靜態數組C#

[英]Searching a static array on Multiple Indexes C#

這可能不僅是要使用哪個集合的問題,而且一旦定義了數據,最好使用哪種方法來訪問數據。 我是C#和.NET的相對新手,但是我經歷了幾個簡單的項目,因此需要在較小的靜態數據集上進行搜索的一些指導。 具體來說,我有一個與此定義類似的類:

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

我們具有這些類對象的簡單數組,定義如下:

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個條目。 我的問題是這個。 我一直在學習使用字典進行索引搜索的過程。 但這似乎只允許搜索一個索引。 我需要的是能夠通過基於任何屬性進行搜索並在匹配對象的其他成員屬性中獲取值的返回集合來訪問此類數據(在數組中)。

例如,在一種情況下,我想獲取lConfigSchema的值集合,當我將dReleaseNum屬性匹配到4.0時返回這些值。 然后,下一次我想要dReleaseNum的值集合時,lConfigSchema屬性等於0x0C。 我基本上想對任何屬性進行這種查找,並獲取任何其他關聯屬性的結果(集合)。

我只是在瀏覽字典,但它們似乎僅適用於單個索引。 我要么在看這個錯誤,要么在看使用錯誤的類來執行此操作。 您可以向我提出任何方向建議嗎? 當我應該使用刀子時,感覺就像在嘗試使用錘子。

警告:我無法為此創建數據庫。 它必須全部在一個單獨的結果可執行文件中,而無需外部數據庫或文件。 這就是為什么我創建內部靜態數組的原因...

謝謝

為什么不使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM