Как вы заявили сами, у вас не может быть Dictionary
с ключами, которые не являются уникальными, поэтому оба варианта в моем ответе предполагают, что вам необходимо первое вхождение ключа:
Вариант 1: использование List
из Tuple
с
public List<Tuple<string, string>> StoreQuery(string queryText)
{
List<Tuple<string, string>> queryList = new List<Tuple<string, string>>();
using (MySqlConnection connection = CreateConnection())
{
using (MySqlCommand command = new MySqlCommand(queryText, connection))
{
using (MySqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
queryList.Add(reader.GetName(i), reader.GetValue(i));
}
}
}
}
}
return queryList;
}
Использование:
var storeQuery = StoreQuery(query);
storeQuery.FirstOrDefault(x => string.Equals(x.Item1, "first_name"));//this will return first oocurance of "first_name" as a key
Вариант 2: использование List
из KeyValuePair
с:
public List<KeyValuePair<string, string>> StoreQuery(string queryText)
{
List<KeyValuePair<string, string>> queryList = new List<KeyValuePair<string, string>>();
using (MySqlConnection connection = CreateConnection())
{
using (MySqlCommand command = new MySqlCommand(queryText, connection))
{
using (MySqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
queryList.Add(reader.GetName(i), reader.GetValue(i));
}
}
}
}
}
return queryList;
}
Использование:
var storeQuery = StoreQuery(query);
storeQuery.FirstOrDefault(x => string.Equals(x.Key, "first_name"));//this will return first oocurance of "first_name" as a key