如何从与我的代码中的位置匹配的字符添加额外的30个字符。
private void CheckGarbageCharacters(string input)
{
var contentList = File.ReadAllLines(input).ToList();
int[] lineno = { 0 };
foreach (var line in contentList)
{
lineno[0]++;
foreach (var errorModel in from c in line
where c > '\u007F'
select new ErrorModel
{
Filename = Path.GetFileName(input),
LineNumber = lineno[0],
ErrorMessage = "Garbage character found.",
Text = c.ToString()
})
{
_errorList.Add(errorModel);
}
}
}
答案 0 :(得分:1)
我不确定我是否完全理解您的问题,但根据您提供的代码,您似乎正在尝试做这样的事情......
〜伪代码〜这还没有经过测试〜
private void CheckGarbageCharacters(string filename)
{
var lines = File.ReadAllLines(filename).ToList();
for (int i = 0; i < lines.Count; i++)
{
var line = lines[i];
for (int j = 0; j < line.Length; j++)
{
var c = line[j];
if (c > '\u007F')
{
// Grab the next 30 characters after 'c'
var text = c.ToString();
for (int k = 0; k < 30; k++)
{
if ((j + k) > (line.Length - 1))
{
break;
}
text += line[j + k].ToString();
}
// Create the error message
var error = new ErrorModel()
{
Filename = Path.GetFileName(filename),
LineNumber = i,
ErrorMessage = "Garbage character found.",
Text = text
};
// Add the error to the list
_errorList.Add(error);
}
}
}
}
我不确定你的意思是“从我的代码中匹配的地方添加额外的30个字符”但是。
修改强>
我已根据您在评论中提供的信息更新了我的答案。我相信这就是你在这里要做的事情。