从keyvaluepair获取单个条目

时间:2013-11-20 09:43:14

标签: c# asp.net

大家好,我有一个班级,我创建了一个keyvaluepair。

if (reader.HasRows)
{
    reader.Read();
    string content = reader["ContentText"].ToString();
    siteContent.Add(new KeyValuePair<string,string>("contentText",content));
    siteContent.Add(new KeyValuePair<string,string>("pageTitle",reader["PageTitle"].ToString()));
    siteContent.Add(new KeyValuePair<string,string>("meta",reader["Meta"].ToString()));
    siteContent.Add(new KeyValuePair<string, string>("menuId", reader["MenuId"].ToString()));
    siteContent.Add(new KeyValuePair<string, string>("cssFile", reader["CssFile"].ToString()));
    siteContent.Add(new KeyValuePair<string, string>("accessLevel", reader["AccessLevel"].ToString()));
    return siteContent;
}

有没有一种方法可以不通过它来获得类似

的值
string content =  siteContent["contentText"].ToString();

由于

3 个答案:

答案 0 :(得分:1)

我假设siteContent为List<KeyValuePair<string,string>>,因此您可以选择keyvaluepair with key&#34; contentText&#34;并获得它的价值

string content =  siteContent.First(x=>x.Key=="contentText").Value;

您始终可以将List<KeyValuePair<string,string>>存储为Dictionary<string,string>,然后将其用作

var siteContentDict = siteContent.ToDictionary((keyItem) => keyItem.Key, (valueItem) => valueItem.Value);
string content =  siteContentDict["contentText"];

答案 1 :(得分:0)

如果您已经使用字典,则Dictionary可以存储键值对并获取键值。

foreach( KeyValuePair<string, string> kvp in myDictionary )
{
    Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
}

答案 2 :(得分:0)

siteContent可能是List<KeyValuePair<string,string>>,我认为如果将其转换为Dictionary<string,string>会更容易使用它:

Dictionary<string, string> siteContentDict= siteContent.ToDictionary(s => s.Key, s => s.Value);
string content =  siteContentDict["contentText"];

您可以根据需要重复使用此词典,以便轻松访问您的值。