Считать только строчки где есть определенное слово - C#
Формулировка задачи:
Нужно считать только строчки где есть слово vertex. Что бы считать, естественно нужно удалить пробелы перед словом vertex и между ним и цифрами. В тексте присутствуют пробелы, тут же их почему то не отображает
Текст:
solid ascii
facet normal 0.000000e+000 0.000000e+000 -1.000000e+000
outer loop
vertex -7.146446e+001 9.646446e+001 0.000000e+000
vertex -7.853554e+001 9.646446e+001 0.000000e+000
vertex -7.146446e+001 1.035355e+002 0.000000e+000
endloop
endfacet
Что не так делаю?
А как правильно убрать пробелы между:
vertex -7.146446e+001 9.646446e+001 0.000000e+000
var itemLine = str.Replace('.',',').Split(' ');
if (itemLine[0].Trim().StartsWith("vertex", StringComparison.CurrentCultureIgnoreCase))
{
...
}Решил часть проблемы
, Trim() переставил и теперь считывает строчку vertex если убрать ручками пробелы между ним и цифрами.var itemLine = str.Replace('.',',').Trim().Split(' ');
if (itemLine[0].StartsWith("vertex", StringComparison.CurrentCultureIgnoreCase))Решение задачи: «Считать только строчки где есть определенное слово»
textual
Листинг программы
private string[] s =
{
"solid ascii",
"facet normal 0.000000e+000 0.000000e+000 -1.000000e+000",
"outer loop",
"vertex -7.146446e+001 9.646446e+001 0.000000e+000",
"vertex -7.853554e+001 9.646446e+001 0.000000e+000",
"vertex -7.146446e+001 1.035355e+002 0.000000e+000",
"endloop",
"endfacet"
};
public string[] DefineVertexStrings()
{
List<string> temp=new List<string>();
var b = s.Where(x => x.Contains("vertex")).Select(x => x);
foreach (var t in b)
{
temp.Add(t);
}
return temp.ToArray();
}