C# 分析字符串拆分
本文关键字:拆分 字符串 | 更新日期: 2023-09-27 18:34:36
我有一个由两列组成的文件,这些文件将存储为字典,其中第一列是键,第二列是值。第二列由空格分隔,空格可以是任意数量的空格或制表符。
如何使用 Split(( 函数将其存储在我的字典中?
recipesFile = new StreamReader(recipesRes.Stream);
char[] splitChars = {''t', ' '};
while (recipesFile.Peek() > 0)
{
string recipesLine = "";
recipesLine = recipesFile.ReadLine();
string[] recipesInLine = recipesLine.Split(splitChars);
recipes.Add(recipesInLine[0], recipesInLine[1]);
}
谢谢
recipesLine.Split(splitChars, StringSplitOptions.RemoveEmptyEntries);
此外,您的代码通常可以缩短为
var myDictionary = File.ReadLines(myFileName)
.Select(l => l.Split(new []{''t', ' '}, StringSplitOptions.RemoveEmptyEntries))
.ToDictionary(a => a[0], a => a[1]);
由于您的条目使用多个空格字符分隔,并且Split
拆分单个字符,因此您需要删除空条目。为此,有一个单独的String.Split
重载:
string[] recipesInLine = recipesLine.Split(splitChars,
StringSplitOptions.RemoveEmptyEntries);
首先,使用 File.readlines 方法。 然后,您可以在行上使用 LINQ。 http://msdn.microsoft.com/en-us/library/dd383503.aspx
Jon Skeet 和 Marc Gravell 都有关于使用 linq 读取文件的好例子,在 C# 中逐行读取文件。
然后使用ToDictionary - Yuriy的答案是一个很好的解决方案。