我制作了一个控制台应用程序,该应用程序正在使用 linq 读取 csv 文件以将文件的每一行加载到 IEnumerable 中。var lines = from rawLine in File.ReadLines(readFolderFile, Encoding.Default) where !string.IsNullOrEmpty(rawLine) && !string.IsNullOrEmpty(rawLine.Trim(';')) select rawLine;现在我需要检查每行与第一行相比有多少分号,如果一行的分号比第一行多,它将被添加到错误列表中。所以我的问题是有什么简单的方法可以计算每行特定符号的数量?结果应该是我可以说,在我的源文件继续使用这个应用程序之后,每一行都有相同数量的列。
2 回答
烙印99
TA贡献1829条经验 获得超13个赞
请记住,每个字符串都可以这样处理IEnumerable<char>:
using System.Linq;
...
"my;string;from;csv;file".Count(c => c.Equals(';')); // = 4;
...
www说
TA贡献1775条经验 获得超8个赞
你可以使用这个:
int count = source.Count(f => f == ';');
其中 source 是字符串变量。
所以在你的情况下,它看起来像:
foreach (var line in lines)
{
if (line.Count(f => f == ';') != firstLineCount))
{
//your logic here
}
}
- 2 回答
- 0 关注
- 120 浏览
添加回答
举报
0/150
提交
取消