存储数据字段集合并通过标识符检索

时间:2010-08-04 18:41:49

标签: c# collections

在C#中,我如何存储一组值,所以如果我想稍后检索一个特定的值,我可以这样做:

myCollection [“Area1”]。AreaCount = 50;

count = myCollection [“Area1”]。AreaCount;

通用列表?

我想将多个属性存储到“密钥”中。是一个类的答案吗?

3 个答案:

答案 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

提供