使用SeT属性在C#中同时设置类的多个属性

时间:2016-05-18 12:38:00

标签: c#

假设我有一个非常大的对象列表,列表中的每个对象都具有以下属性:ID,名称,制作,模型,颜色,价格

我知道如果我想快速找到列表中的对象,我可以使用索引器并使用它的ID搜索对象。

但是一旦找到对象,我该如何同时更改多个属性?

我考虑过在Indexer的get属性中返回MyClass对象,以便我可以访问它的所有属性。但是,我不知道如何在Indexer的set属性中执行此操作。以下是我的代码

"none"

1 个答案:

答案 0 :(得分:1)

  

但是一旦我找到对象,我如何同时更改多个属性?

看起来你想做类似

的事情
List[4] = {Name = "name", 
           Make = "make", 
           Model = "model", 
           Color = "color", 
           Price = "price
          };

这在C#中是不可能的。没有语法可以同时设置现有对象的多个属性。您可以创建对象并替换列表中的对象:

List[4] = new MyClass {
           Name = "name", 
           Make = "make", 
           Model = "model", 
           Color = "color", 
           Price = "price
          };

但那是创建一个 new 对象,而不是修改现有的对象。

设置多个属性的唯一方法是使用单个set s:

MyClass obj = List[4];
obj.Name = "name";
obj.Make = "make";
obj.Model = "model"; 
ojb.Color = "color"; 
obj.Price = "price";

请注意,这根本不涉及index属性的setter。集合拥有一个只使用索引器的情况并不少见,因此列表本身不能通过索引器进行变异,尽管内部对象的属性可以。