c# - 如何使用 MySql C# 从 "public List<string>[]"获取每个列表的结果

标签 c# mysql list

您好,我正在寻求一些帮助。我正在尝试从这段代码中获取结果...

public List<string>[] SelectPickUp()
{
    string query = "SELECT * FROM pickup";

    List<string>[] list = new List<string>[7];
    list[0] = new List<string>();
    list[1] = new List<string>();
    list[2] = new List<string>();
    list[3] = new List<string>();
    list[4] = new List<string>();
    list[5] = new List<string>();
    list[6] = new List<string>();

    if (this.OpenConnection() == true)
    {
        MySqlCommand cmd = new MySqlCommand(query, connection);
        MySqlDataReader dataReader = cmd.ExecuteReader();

        while (dataReader.Read())
        {
            list[0].Add(dataReader["QuestName"] + "");
            list[1].Add(dataReader["QuestId"] + "");
            list[2].Add(dataReader["GiverName"] + "");
            list[3].Add(dataReader["GiverId"] + "");
            list[4].Add(dataReader["MoveToX"] + "");
            list[5].Add(dataReader["MoveToY"] + "");
            list[6].Add(dataReader["MoveToZ"] + "");
        }
        dataReader.Close();
        this.CloseConnection();

        return list;
    }
    else
    {
        return list;
    }
}

问题是我如何在另一个地方使用这些信息,例如......

UInt16 CurrentQuest;
UInt16 SecondQuest;
UInt16 ThridQuest;

if (Questing.Quests.Count == 0)
{
      test.SelectPickUp();
      test.SelectPickUp().list[0].list[0] = CurrentQuest;
      test.SelectPickUp().list[1].list[1] = SecondQuest;
      test.SelectPickUp().list2].list[] = ThridQuest;
}

对于这种性质的东西,非常感谢任何帮助!

最佳答案

呵呵,我无法理解你的动机,但我认为有更好的方法来解决你的问题。 DTO级怎么样?

public class Quest
{
    public string QuestName { get; set; }
    public string QuestId { get; set; }
    public string GiverName { get; set; }
    public string GiverId { get; set; }
    public string MoveToX { get; set; }
    public string MoveToY { get; set; }
    public string MoveToZ { get; set; }
}

现在您可以使用更多 OO 代码:

var quests = new List<Quest>();
if (this.OpenConnection() == true)
{
    MySqlCommand cmd = new MySqlCommand(query, connection);
    MySqlDataReader dataReader = cmd.ExecuteReader();

    while (dataReader.Read())
    {
        var quest = new Quest
        {
            QuestName = (string) dataReader["QuestName"],
            QuestId = (string) dataReader["QuestId"],
            GiverName = (string) dataReader["GiverName"],
            GiverId = (string) dataReader["GiverId"],
            MoveToX = (string) dataReader["MoveToX"],
            MoveToY = (string) dataReader["MoveToY"],
            MoveToZ = (string) dataReader["MoveToZ"]
        };
        quests.Add(quest);

    }
    dataReader.Close();
    this.CloseConnection();

    return quests;
}

下一步您不仅可以使用字符串值。如果 QuestId 是 inetger,您可以将其转换为 int:

QuestId = (int) dataReader["QuestId"],

避免使用此代码:

if (Questing.Quests.Count == 0)
{
    test.SelectPickUp();
    test.SelectPickUp().list[0].list[0] = CurrentQuest;
    test.SelectPickUp().list[1].list[1] = SecondQuest;
    test.SelectPickUp().list2].list[] = ThridQuest;
}

您应该枚举一次 reader,然后尝试以下操作:

var quests = test.SelectPickUp();
if (Questing.Quests.Count == 0)
{
    quests.Insert(0, CurrentQuest);
    quests.Insert(1, SecondQuest);
    quests.Insert(2, ThridQuest);
}

关于c# - 如何使用 MySql C# 从 "public List<string>[]"获取每个列表的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34151113/

相关文章:

Python 不同长度、平均值和标准差的多个列表

php - 如何将一个 mySQL 表中的数据显示到 php 中的多个表中?

c# - 多个可选参数路由

c# - NullReferenceException 并不总是在应该抛出的时候抛出

c# - WPF 中的数据模板

mysql - 数据库中的用户数据列表?

MySQL : Max value of combined columns

python - 如何按目录隔离S3存储桶中的文件?

java - 在 Java 中使用列表列表

c# - 在 DatagridViewCell 中显示用户控件