Console.WriteLine("Insert the character you are searching for: ");
CharacterSearch = Console.ReadLine();
var count = file.Where(x => x == CharacterSearch).Count();
所以我要做的是从变量file
中读取文本,然后搜索从键盘输入的字符串中的特定字符。因此,搜索到的字符将是CharacterSearch
。
我还想检查他们的位置,而不仅仅是发生次数。
答案 0 :(得分:1)
这是非常低效,但它是一个选项,文件很小。
CharacterSearch = Console.ReadKey();
var count = File.ReadLines(pathToFile)
.Select((c, i) => new { Character = c, Index = i })
.ToList()
.Where(x => x.Character == CharacterSearch);
答案 1 :(得分:1)
为什么不简单使用此方法? (你在寻找一个复杂的吗?)
List<int> indexes = new List<int>();
for (int i = 0; i < file.Length; i++)
{
if (file[i]==CharacterSearch)
{
indexes.Add(i);
}
}
int count = indexes.Count;
答案 2 :(得分:0)
效率低但可以在文件较小时应用。
public static int CharCount(string input,char c)
{
var charCount=input.GroupBy(a => a).ToDictionary(k => k.Key, v => v.Count());
if (charCount.ContainsKey(c))
return charCount[c];
return 0;
}
如果你想在同一个字符串中进行搜索,我认为最好保持映射。再一次只有一个小文件。
public static Dictionary<char, int> CharCountMapping(string input)
{
return input.GroupBy(a => a).ToDictionary(k => k.Key, v => v.Count());
}