C# 从文件包含多行的单行读取
我想从一行代码中读取:C# 从文件包含多行的单行读取,c#,text,C#,Text,我想从一行代码中读取: var data = File .ReadLines("itemdata.txt") .SelectMany(x => x.Split('\t')) .Select(x => x.Split('=')) .Where(x => x.Length > 1) .ToDictionary(x => x[0].Trim(), x => x[1
var data = File
.ReadLines("itemdata.txt")
.SelectMany(x => x.Split('\t'))
.Select(x => x.Split('='))
.Where(x => x.Length > 1)
.ToDictionary(x => x[0].Trim(), x => x[1]);
来自包含多行相同文本的文本文件。示例:etcitem=装甲在第一行,etcitem=武器在第二行,希望仅从一行读取。资源应该来自第一行:textsearch.Text=data[“etcitem”]代码>posbile怎么样?
谢谢大家! 您可以使用.Take()选择第一行,如下所示:
var data = File
.ReadLines("itemdata.txt")
.Where(x => x.Contains("5624"))
.Take(1)
.SelectMany(x => x.Split('\t'))
.Select(x => x.Split('='))
.Where(x => x.Length > 1)
.ToDictionary(x => x[0].Trim(), x => x[1]);
如果需要跳过任何行,也可以使用.Skip()。也许ToLookup会更好-我假设您在创建字典时由于非唯一键而出错。虽然我不太清楚你所说的“只从一本书上读”是什么意思。@Baldrick是的,我确实犯了这个错误。你能在我的源代码中显示吗?你想在有2个结果的地方只得到一个结果吗?或者你想把它们全部取回吗?@Baldrick只是一行一行地搜索,因为我从那一行的其他文本中搜索到的结果在另一行中没有显示。我建议将“ToDictionary”替换为“ToLookup”。查找允许每个键有多个值。然后,当你使用查找时,你可以做一个字符串。Join连接该键的结果-这样你就可以在一行上以你选择的方式返回盔甲和武器。这只需要第一行,但如果我使用Skip,它会到达指定行,并注意我用指定文本搜索的那一行。这里有一个例子:第一行是装备5623 etcitem=盔甲,第二行是装备5624 etcitem=武器。我用5624搜索,我不完全明白你的意思,但是如果你需要搜索某一行,你可以在.ReadLines()和.Take()之间使用.Select(x=>x.Contains(“5624”)。你能把它放在你的代码中吗?因为by返回错误。是的,这是搜索特定行的理想方法。如下所示:var data=File.ReadLines(“itemdata.txt”)。Select(x=>x.Contains(“5624”))。Take(1)。SelectMany(x=>x.Split('\t'))。Select(x=>x.Split('='))。其中(x=>x.Length>1)。ToDictionary(x=>x[0]。Trim(),x=>x[1]);此部分在您的代码中不再工作SelectMany(x=>x.Split('\t'))
。返回错误。