如何在字符串列表的两个索引中获取值,并将它们赋值给两个字符串变量

本文关键字:两个 字符串 变量 赋值 索引 列表 获取 | 更新日期: 2023-09-27 17:53:17

我正在实现一个方法来返回从查询生成的结果集并将其分配给字符串列表。我已经设置分配id (id是主键)和选定的db表行索引0和1在字符串列表中的名称。其代码如下,

    public List<string>[] getTrafficLevel()
    {
        string query = "select * from traffictimeinfo where startTime<time(now()) and endTime>time(now());";
        List<string>[] list = new List<string>[2];
        list[0] = new List<string>();
        list[1] = new List<string>();
        if (this.openConnection() == true)
        {
            MySqlCommand cmd = new MySqlCommand(query, connection);
            MySqlDataReader dataReader = cmd.ExecuteReader();
            while (dataReader.Read())
            {
                list[0].Add(dataReader["timeslotid"] + "");
                list[1].Add(dataReader["timeslotname"] + "");
            }
            dataReader.Close();
            this.closeConnection();
            return list;
        }
        else
        {
            return list;
        }
    }

我想知道的是我如何在两个索引中分配这个值到两个字符串变量。

我尝试的方法如下,有谁知道如何实现这个…提前感谢……

    public void predictLevel(List<String>resList)
    {
        string trafficTime, trafficLevel;
        List<string>[]ansList = getTrafficLevel();
        ansList[0] = # want to assign the string value into trafficTime string variable
        ansList[1].ToString = # want to assign the string value into trafficLevel string variable
    }

如何在字符串列表的两个索引中获取值,并将它们赋值给两个字符串变量

您考虑过使用元组列表吗?

public List<Tuple<string,string>> getTrafficLevel()
{
    string query = "select * from traffictimeinfo where startTime<time(now()) and endTime>time(now());";
    List<Tuple<string,string>> list = new List<Tuple<string,string>>();
    if (this.openConnection() == true)
    {
        MySqlCommand cmd = new MySqlCommand(query, connection);
        MySqlDataReader dataReader = cmd.ExecuteReader();
        while (dataReader.Read())
        {
            list.Add(new Tuple<string,string>(dataReader["timeslotid"] + "", dataReader["timeslotname"] + ""));
        }
        dataReader.Close();
        this.closeConnection();
        return list;
    }
    else
    {
        return list;
    }
}

你的predictLevel方法是-

public void predictLevel(List<String>resList)
{
    string trafficTime, trafficLevel;
    List<Tuple<string,string>> ansList = getTrafficLevel();
    trafficTime = ansList[0].Item1;
    trafficLevel = ansList[0].Item2;
}