如何拆分2D字典中的字符串

时间:2018-05-17 13:29:45

标签: c# dictionary split

所以我必须放置并分割存储在字符串Content:

中的这些信息
ID_PLAYER_1==>Joueur 1---Player 1
ID_AMMO==>Muni---Ammo

在一个看起来像这样的二维词典中:

Dictionary<Language, Dictionary<string, string>> items = 
    new Dictionary<Language, Dictionary<string, string>>();

枚举语言将根据单词的语言确定一个字符的位置。

所以最后它看起来像这样:

Player 1  Ammo
Joueur 1  Muni

我之前从未使用过二维字典而且我很困惑我应该如何分割它。我正在努力进行文本转换的方法,如下所示:

public ErrorCode Parse()
{    
    string Content = "@ID_PLAYER_1==>Joueur 1---Player 1
    ID_AMMO==>Muni---Ammo"
    //Content has the value: " ID_PLAYER_1==>Joueur 1---Player 1
    //ID_AMMO==>Muni---Ammo"
    items[0].Add (Content.Split(//splitting method), Content.Split())
    return ErrorCode.MISSING_FIELD;
}

枚举语言:

public enum Language
{
  French,
  English
}

错误码:

public enum ErrorCode
{
 OK,
 BAD_FILE_FORMAT,
 MISSING_FIELD,
}

1 个答案:

答案 0 :(得分:1)

您可以使用以字符串作为分隔符的String.Split()方法。

首先,您可以从内容中分割ID。然后用法语/英语分割内容。

将所有值放在您想要的位置,例如:

var items = new Dictionary<Language, Dictionary<string, string>>();
items.Add(Language.English, new Dictionary<string, string>() );
items.Add(Language.French, new Dictionary<string, string>() );

var input = "ID_PLAYER_1==>Joueur 1---Player 1";

// parts[0] = ID ; parts[1] = Content
var parts = input.Split(new string[] { "==>" }, StringSplitOptions.None);

// values[0] = french ; values[1] = english
var values = parts[1].Split(new string[] { "---" }, StringSplitOptions.None);

var key = parts[0]; // ID
var french = values[0];
var english = values[1];

// put them in the Dictionary
items[Language.English].Add(key, english);
items[Language.French].Add(key, french);