C#如何设置和获取对象中的项目?

时间:2014-10-21 18:08:38

标签: c# asp.net .net vb.net datatable

我很久以前就是VB.Net程序员,但最近我开始学习C#。我知道Vb.Net分享了C#的许多功能和反之,所以我试图将我的类代码文件(我使用的最多)转换为“C#native”。但我一直面临着对象的问题,因为在我看来(也许我错了)他们的结构与他们在Vb.Net中的结构不一样

对象的某些属性可能会丢失或者我找不到,我不知道它们的C#等价物是什么。现在我有这些。

Private g as object

现在,如果想要向对象添加/分配新值我写

g.item("exampleKey") = "exampleValue"

但如果我在C#中尝试这个

private object g;
g.item("exampleKey") = "exampleValue"

最后一行给我一个错误

另一方面,如果我想用DataTable“s”填充“g”对象,我之前在填充TableAdapter时使用了“E”

E.fill(s)

我写

g = s.NewRow

g = s.Rows(0)

毕竟我开始做对象编辑

g.BeginEdit()

然后我按照上面的方式进行编辑,之后我通过

结束编辑
g.item("exampleKey") = "exampleValue"
g.item("exampleKey2") = "exampleValue3"
...
g.endEdit()

如果我想将“g”对象添加为DataTable的一行“我写”

s.rows.add(g)

最后,如果我想用DataTable更新TableAdapter“E”,“我制作

E.update(s)

如何在C#中编写相同的内容?我知道有IEnumerables,Lists,Dictionary,IDictionary等等,但我不知道哪种方法最接近我的情况。

2 个答案:

答案 0 :(得分:3)

C#中的索引和基于键的选择器使用方括号。例如:

g["exampleKey"] = "value"; // Equivalent to VB.NET --> g.Item("exampleKey") = "value";

答案 1 :(得分:0)

您必须关联所有代码,这些代码来自object。所以你需要做的是实现 C#的结构。重要的是要注意:

public class Example
{
     public Example()
     {
         // Constructor
     }

     public void Method()
     {
         // Call Method, which will perform a task.
     }

     public string Demo { get; set; } // Property
}

因此,在我们的objectExample中,您有几个项目。 构造函数将在构建object时初始化。如果您不添加一个,CLR将自动添加一个。您的方法将构建为执行您选择的任务。然后是一个 Property ,我现在作为匿名属性

要调用此对象,您只需执行以下操作:

Example example = new Example();
example.Demo = @"Value";

您已为属性分配了一个值,您还构建了object

显然这是一个演示,它不是最有用的,但加上委托它是非常有用的。希望这提供了一些见解,但就您的问题而言:

使用方括号Index实现

Key[ ]。所以你需要这样做:

g.Item["ExampleKey"] = "value";
g.Item["ExampleKey"].Value = "value";

可能会根据您的尝试而有所不同。希望这会有所帮助 -