У меня есть файл, который я импортирую в RTB:
// Some Title
// Some Author
// Created on
// Created by
//
Format:
"Text Length" : 500 lines
"Page Length" : 20 pages
Component: 123456
"Name" : Little Red Riding Hood
"Body Length" : 13515 lines
........etc // can have any number of lines under 'Component: 123456'
Component: abcd
"Name" : Some other Text
"Body Length" : 12 lines
........etc // can have any number of lines under 'Component: abcd'
... etc, etc // This can occur thousands of times as this file has an unset length.
Теперь происходит сохранение значений от Component: 123456
до следующего Component
(что составляет abcd
) в позицию List<string>
0. Следующий будет в позиции 1 ... и так далее, пока весь файл не будет прочитан.
Используя приведенный ниже код, я могу решить вышеуказанную проблему:
string[] splitDataBaseLines = dataBase2FileRTB.Text.Split('\n');
StringBuilder builder = null;
var components = new List<string>();
foreach (var line in splitDataBaseLines)
{
if (line.StartsWith("Component : "))
{
if (builder != null)
{
components.Add(builder.ToString());
builder = new StringBuilder();
}
builder = new StringBuilder();
}
if (builder != null)
{
builder.Append(line);
builder.Append("\r\n");
}
}
if (builder != null)
components.Add(builder.ToString());
Однако теперь, когда это работает правильно, мне нужно манипулировать этим кодом, чтобы добавить его только в components
Список , если есть совпадение из другого списка.
Чтобы выяснить, соответствует ли строка, чтобы я мог добавить ее в список components
, мне нужно разбить начальную строку выше.Я делаю это, добавляя этот код:
string partNumberMatch;
if (line.StartsWith("Component : "))
{
partNumberMatch = line.Split(':');
if (builder != null)
{
//....
}
Теперь, когда у меня есть номер компонента / строка, мне нужно сравнить это с другим списком ... Я думал о том, чтобы сделать что-то вроде:
foreach (var item in theOtherList)
{
if (item.PartNumber.ToUpper().Equals(partNumberMatch[1]))
}
Но я не думаю, что это лучший способ, или этот способ действительно работает должным образом.
Поэтому мой вопрос, может ли кто-нибудь помочь мне сравнить эти две строки, чтобы увидеть, совпадают ли они и толькодобавьте значения компонентов в список component
, если элемент соответствует.
Особая благодарность Джону Скиту