我有一个这样的字符串:"内容; 123内容; 456 contentss; 789"等。
我想拆分这个字符串来获得一个字典,但我不知道你能做到这一点。我尝试拆分字符串,但我只有一个List。
内容(在半冒号之前)始终是唯一的字符串。 在半冒号之后,我总是有一个数字,直到找到空间。 数字总是一个int(没有浮动需要)。
有人能帮帮我吗?
答案 0 :(得分:5)
您可以使用以下LINQ表达式:
"content;123 contents;456 contentss;789"
.Split(' ')
.Select(x => x.Split(';'))
.ToDictionary(x => x[0], x => int.Parse(x[1]));
答案 1 :(得分:2)
string input = "content1;123 content2;456 content3;789";
var dict = Regex.Matches(input, @"(.+?);(\d+)").Cast<Match>()
.ToDictionary(m => m.Groups[1].Value, m => int.Parse(m.Groups[2].Value));
答案 2 :(得分:1)
var myList = "content1;number1 content2;number2 content3;number3";
var myDictionary = myList.Split(' ').Select(pair => pair.Split(';')).ToDictionary(splitPair => splitPair[0], splitPair => int.Parse(splitPair[1]));
答案 3 :(得分:1)
您可以这样做:
string value = "content;123 contents;456 contentss;789";
Dictionary<string, int> data = new Dictionary<string,int>();
foreach(string line in value.Split(' '))
{
string[] values = line.Split(';');
if (!data.ContainsKey(values[0]))
{
data.Add(values[0], Convert.ToInt32(values[1]));
}
}
答案 4 :(得分:0)
static void Main(string[] args)
{
string content = "content;123 contents;456 contentss;789";
Dictionary<string, int> result = new Dictionary<string, int>();
content.Split(' ').ToList().ForEach(x =>
{
var items = x.Split(';');
result.Add(items[0], int.Parse(items[1]));
});
foreach(var item in result)
{
Console.WriteLine("{0} -> {1}" , item.Key, item.Value);
}
}