假设我有一个非常大的对象列表,列表中的每个对象都具有以下属性:ID,名称,制作,模型,颜色,价格
我知道如果我想快速找到列表中的对象,我可以使用索引器并使用它的ID搜索对象。
但是一旦找到对象,我该如何同时更改多个属性?
我考虑过在Indexer的get属性中返回MyClass对象,以便我可以访问它的所有属性。但是,我不知道如何在Indexer的set属性中执行此操作。以下是我的代码
"none"
答案 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。集合拥有一个只使用索引器的情况并不少见,因此列表本身不能通过索引器进行变异,尽管内部对象的属性可以。