C# 我可以使用方括号从类中提取值吗

C# 我可以使用方括号从类中提取值吗,c#,C#,我有一个类,它有一个变量“Magic”。这是一个4字符的字符串。我可以用C#做这样的事吗 *假设“chunkList”是“chunk”对象的IList/列表。是的,您可以在类上创建: public string this[string s] { get { // retrieve value } set { // set value } } 您可以使用以下内容: string offset = chunkList.

我有一个类,它有一个变量“Magic”。这是一个4字符的字符串。我可以用C#做这样的事吗

*假设“chunkList”是“chunk”对象的IList/列表。

是的,您可以在类上创建:

public string this[string s]
{
    get
    {
        // retrieve value
    }
    set
    {
        // set value
    }
}

您可以使用以下内容:

string offset = chunkList.Find(x => x.Magic == "_blf").offset;
最好是检查Find retuns是否为null:

Chunk chunk = chunkList.Find(x => x.Magic == "_blf");
if (chunk != null)
    offset = chunk.offset;

但这就需要创建List的子类,并将indexer属性添加到子类中……好吧,他们可以在
Magic
类中实现它,并委托给chunkList。这就更好了。非常非常感谢。
Chunk chunk = chunkList.Find(x => x.Magic == "_blf");
if (chunk != null)
    offset = chunk.offset;