C# 如何将其附加到KeyValuePair?

C# 如何将其附加到KeyValuePair?,c#,C#,我的名单显然又回来了。如何在KeyValuePair中追加第二个字符串,并添加从第二次数据库调用返回的ID // Database calls here KeyValuePair<string, string> parks = new KeyValuePair<string, string>(); DataSet dset = new DataSet(); var list = new List<KeyValuePair<

我的名单显然又回来了。如何在KeyValuePair中追加第二个字符串,并添加从第二次数据库调用返回的ID

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
KeyValuePair是不可变的。如果要继续使用KeyValuePair,则必须删除要修改的对,然后添加一个具有修改值的新对

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
或者,使用不同的数据类型。如果要修改值,请使用允许修改值的类型。

KeyValuePair是不可变的。如果要继续使用KeyValuePair,则必须删除要修改的对,然后添加一个具有修改值的新对

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
或者,使用不同的数据类型。如果要修改值,请使用允许修改值的类型。

在KeyValuePair中,键和值是只读的。您可以使用字典进行工作,并从中获取KeyValuePair

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
我认为这是可行的:

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
// Database calls here
Dictionary<string, string> list = new Dictionary<string, string>();

list.Add("Select one", "0");
foreach (DataRow row in ds.Tables[0].Rows)
{

    list.Add(row[0].ToString(), row[1].ToString());

}

//Another database call that gets back an ID. I want to add/append this ID into my second string in my KeyValue Pair.

return list;
对于附加第二个字符串,您可以使用list[/*您的ID*/]=YourData

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
列表不是一个好方法。就像你用一杯茶来灭火一样

在KeyValuePair中,键和值是只读的。您可以使用字典进行工作,并从中获取KeyValuePair

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
我认为这是可行的:

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;
// Database calls here
Dictionary<string, string> list = new Dictionary<string, string>();

list.Add("Select one", "0");
foreach (DataRow row in ds.Tables[0].Rows)
{

    list.Add(row[0].ToString(), row[1].ToString());

}

//Another database call that gets back an ID. I want to add/append this ID into my second string in my KeyValue Pair.

return list;
对于附加第二个字符串,您可以使用list[/*您的ID*/]=YourData

    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;

列表不是一个好方法。就像你用一杯茶来灭火一样

有没有关于如何删除然后用我的代码实现它的例子?有没有关于如何删除然后用我的代码实现它的例子?@TCC:Dictionary是解决像你这样的问题的方法。我把它作为KeyValuePair保存了下来。我编辑了上面的代码,向您展示了我所做的。@TCC:Dictionary是解决像您这样的问题的方法。我将它作为一个KeyValuePair保存。我已经编辑了上面的代码,向您展示了我所做的工作。
    // Database calls here

    KeyValuePair<string, string> parks = new KeyValuePair<string, string>();

    DataSet dset = new DataSet();

    var list = new List<KeyValuePair<string, string>>();

    list.Add(new KeyValuePair<string, string>("Select one", "0"));
    foreach (DataRow row in ds.Tables[0].Rows)
    {
        //My database calls including:
         db.AddInParameter(comm, "@pID", DBType.Int32, row[1]);
         dset = db.ExecuteDataSet(comm);
         string attr = dset.Tables[0].Rows[0]["Value"].ToString();
        list.Add(new KeyValuePair<string, string>(row[0].ToString() + " - " + attr, row[1].ToString()));

    }

    return list;