gpt4 book ai didi

c# - 像按索引访问对象,但在 C# 中按名称访问对象

转载 作者:行者123 更新时间:2023-11-30 13:15:48 25 4
gpt4 key购买 nike

我必须上课,父亲和 child (举例)

我的实现片段

父类.cs

public class Father
{
public int Id { get; set; }
public string Name { get; set; }
public List<Child> Children { get; set; }

public Father()
{
}
}

类 Child.cs

public class Child
{
public int Id { get; set; }
public string Name { get; set; }

public Child()
{
}

}

我正在尝试做这样的事情

        Father f = new Father();
f.Children[0]; // ok
f.Children[1]; // ok
f.Children["John"]; // Duh!

我现在错了,我需要在子类中实现一些东西,我试过了

    public Child this[string name]
{
get
{
return this;
}
}

但这行不通。

我如何为我的类(class) Child 实现此功能?

最佳答案

A List<T>没有字符串索引器;你可以在 Father 中添加一个类,但用法将是:

var child = parent["Fred"];

(没有.Children)

对于索引器本身:尝试(在索引器中):

return Children.FirstOrDefault(c=>c.Name==name);

要在列表本身上获取索引器,您必须创建自定义列表类型并在其中添加索引器。

IMO,一个方法可能更清晰(在父亲身上):

public Child GetChildByName(string name) {...}

关于c# - 像按索引访问对象,但在 C# 中按名称访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4412384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com