如何为C#中的特定列表元素执行方法?

如何为C#中的特定列表元素执行方法?,c#,list,C#,List,我的代码如下所示: public class Artikel : List<Datenschicht.tb_Artikel> { .... public void DoSomething() { .. } } Artikel[0].DoSomething(); 如何在“DoSomething”方法中获得此数字(0) 谢谢你的帮助 Artikel[0]属于Datenschicht.tb\u Artikel类型,因此我很确定从那里将无

我的代码如下所示:

public class Artikel : List<Datenschicht.tb_Artikel>
{
     ....
     public void DoSomething()
     {
     ..
     }
}
Artikel[0].DoSomething();
如何在“DoSomething”方法中获得此数字(0)


谢谢你的帮助

Artikel[0]
属于
Datenschicht.tb\u Artikel
类型,因此我很确定从那里将无法访问
DoSomething
方法。

Artikel[0]
属于
Datenschicht.tb\u Artikel
类型,因此,我非常确定从那里将无法访问
DoSomething
方法。

您不能,因为对象不知道它在数组中


如果需要索引,可以将其作为参数传入。

不能,因为对象不知道它在数组中


如果您需要索引,您可以将其作为参数传入。

这似乎是对OO问题的基本误解。“Artikel”类型声明“DoSomething”Datenschicht.tb_Artikel'没有。Artikel[0]返回“Artikel”实例中的第一个对象。项目被声明为“Datenschicht.tb_Artikel”类型,因此没有剂量测量方法。除非你把它放在那里


如果目的是让一个方法对指定的项执行某些操作,您可以编写一个DoSomething(inti)方法,该方法接受索引,检索索引,然后使用索引执行某些操作。

这似乎是对OO问题的基本误解。“Artikel”类型声明“DoSomething”Datenschicht.tb_Artikel'没有。Artikel[0]返回“Artikel”实例中的第一个对象。项目被声明为“Datenschicht.tb_Artikel”类型,因此没有剂量测量方法。除非你把它放在那里


如果目的是让一个方法对指定的项目执行某些操作,您可以编写一个DoSomething(inti)方法,该方法接受索引,检索索引,然后使用它执行某些操作。

我同意wasabi的观点。您可以将
void DoSomething()
实现为对
Datenschicht.tb\u Artikel
的静态扩展方法,如果在您的程序中这样做是明智的话。

我同意wasabi的观点。如果在您的程序中这样做是明智的,您可以将
void DoSomething()
实现为对
datenschict.tb\u Artikel
的静态扩展方法。

听起来您想让
tb\u Artikel
的实例知道它在
列表
结构中占据了什么索引。如果是这样,这是不可能的。对象不知道它们的容器。主要是因为对象可以在任何给定时间包含在多个
列表中。那么它会选择哪个号码呢

不过,一种选择是让
DoSomething
直接获取
int
值。然后让它从自身中选择要操作的值

void DoSomething(int index) {
  this[index].DoSomethingElse();
}

听起来像是想让
tb_Artikel
的实例知道它在
列表
结构中占据了什么索引。如果是这样,这是不可能的。对象不知道它们的容器。主要是因为对象可以在任何给定时间包含在多个
列表中。那么它会选择哪个号码呢

不过,一种选择是让
DoSomething
直接获取
int
值。然后让它从自身中选择要操作的值

void DoSomething(int index) {
  this[index].DoSomethingElse();
}

它是有缺陷的,或者你提出了一个不适定的问题你是不是想写
DoSomething(Artikel[0])?我认为你的问题不够清楚,没有人能给你答案。你需要更清楚地说明你的意图。具体来说,您正试图使用Artikel[0]执行的操作。它有缺陷,或者您提出了一个不适定的问题您是否打算编写
DoSomething(Artikel[0])?我认为你的问题不够清楚,没有人能给你答案。你需要更清楚地说明你的意图。具体来说,您正试图对Artikel[0]执行什么操作。