在C#中,我如何存储一组值,所以如果我想稍后检索一个特定的值,我可以这样做:
myCollection [“Area1”]。AreaCount = 50;
或
count = myCollection [“Area1”]。AreaCount;
通用列表?
我想将多个属性存储到“密钥”中。是一个类的答案吗?
答案 0 :(得分:2)
您正在寻找Dictionary<string, YourClass>
class。 (YourClass
具有AreaCount
属性)
答案 1 :(得分:1)
修改强>
根据您的评论,您似乎想要一个字典(如已建议的那样),其中您的对象包含您的所有“值”。
For Instance:
public class MyClass
{
public int AreaCount;
public string foo;
public bool bar;
}
//Create dictionary to hold, and a loop to make, objects:
Dictionary<string, MyClass> myDict = new Dictionary<string, MyClass>();
while(condition)
{
string name = getName(); //To generate the string keys you want
MyClass mC = new MyClass();
myDict.Add(name, mC);
}
//pull out yours and modify AreaCount
myDict["Area1"].Value.AreaCount = 50;
或者,您可以向您的班级添加string
“名称”(我使用示例字段,您可能使用属性)并使用Linq:
//Now we have a list just of your class (assume we've already got it)
myClass instanceToChange = (from items in myList
where Name == "Area1"
select item).FirstOrDefault();
myClass.AreaCount = 50;
这有用吗?
原始回复
我不完全确定你在问什么,但我会在以前给它。
根据您需要抓取特定对象的对象列表,(通常)有4种方式 - 具体取决于您的具体需求。
如果你的对象已经支持某种搜索(比如String.Contains()),那么Generic List<T>
实际上只能做得很好。
SortedList使用IComparer来比较和排序Key值并以这种方式排列列表。
Dictionary存储密钥和值,以便可以检索KeyValuePair
个对象。
HashTable使用密钥和值,其中密钥必须实现GetHashCode()
和ObjectEquals
您需要的具体内容将根据您的具体要求而有所不同。
答案 2 :(得分:0)
此功能由indexers
提供