Как добавить строковые значения через запятую в переменную сеанса словарного типа - PullRequest
1 голос
/ 27 января 2011

Я использую c #

В моей переменной есть строка ниже.

string results = "Mr,Mike,Lewis,32,Project Manager,India";

Теперь я хочу добавить эти значения в словарь типа переменной сеанса. Я объявил переменную типа dict в моем коде.

Dictionary<string, string> skywardsDetails = new Dictionary<string, string>();

Напишите сейчас, что я написал код был похож на:

if (!string.IsNullOrEmpty(results))                                            
{                                                
    string[] array = results.Split(',');
    string title = array[0];
    string firstname = array[1];
    string lastname = array[2];
    string age = array[3];
    string designation = array[4];    
    string country = array[4];    

    //Here I want to write the new code which will add the results.Split(',') values in my Session variable as a Dictionary type.                                       

    foreach (string key in results.Split(','))
    {
    skywardsDetails.Add(key,//What to do here)
    }
}

Пожалуйста, предложите

Ответы [ 4 ]

5 голосов
/ 27 января 2011

Ваша переменная CSV results не представляет собой словарь. Это представляет Employee модель:

public class Employee
{
    public string Title { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
    public string Designation { get; set; }
    public string Country { get; set; }
}

и затем:

var tokens = (results ?? string.Empty).Split(',');
if (tokens.Length > 5)
{
    var employee = new Employee
    {
        Title = tokens[0],
        FirstName = tokens[1],
        LastName = tokens[2],
        Age = int.Parse(tokens[3]),
        Designation = tokens[4],
        Country = tokens[5]
    };
    // TODO: do something with this employee like adding it
    // to some dictionary, session, whatever
}
1 голос
/ 27 января 2011

Было бы разумнее использовать словарь так:

skywardsDetails.Add("Title", array[0]);
skywardsDetails.Add("FirstName", array[1]);
// etc. 

Вы не должны использовать фактические значения в качестве ключей, так как я думаю, что вам нужен общий способ доступа к ним.

1 голос
/ 27 января 2011

Вы не можете использовать здесь foreach, и вместо объявления локальных переменных замените эту часть на

    skywardsDetails["title"] = array[0];
    skywardsDetails["firstname"] = array[1];
    skywardsDetails["lastname"] = array[2];
    skywardsDetails["age"] = array[3];
    skywardsDetails["designation"] = array[4];    
    skywardsDetails["country"] = array[5];    

Теперь переместите эти строковые константы в некоторую константу, такую ​​как const string Title = "title", и вы сможете получить необходимые данные поля из вашего словаря, например

string title= skywardsDetails[Constants.Title]
0 голосов
/ 27 января 2011

Попробуйте что-то вроде этого:

enum UserData
{
    Title,
    Firstname,
    Lastname,
    Age,
    Designation,
    Country  
}
//========================================================
string results = "Mr,Mike,Lewis,32,Project Manager,India";
string[] array = results.Split(',');
var skywardsDetails = new Dictionary<UserData, string>();
// maybe you need some check data here
for (int i = 0; i < array.Length; i++)
{
    skywardsDetails[(UserData)i] = array[i];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...