#c# #azure #streamreader
Вопрос:
Я работаю в проекте, в котором я считываю значения из файла .txt, чтобы проверить, имеют ли данные, которые я извлекаю из базы данных, по крайней мере одно значение, равное файлу .txt.
Пример:
содержимое файла .txt
22,
23,
24,
25
’23’ из файла .txt должно содержать 4 результата из базы данных, что я хочу сделать, так это после поиска, если есть 1 результат, перейти к следующей строке в этом случае 23.
Я пытаюсь создать модель с bool для сравнения, если она была добавлена, но все еще не работает, добавлена в хэш-набор и без результата.
Вот что у меня есть до сих пор:
private void Fetch()
{
List <CList> itemList = new List<CList>();
using (StreamReader sr = new StreamReader("numberOfItems.txt"))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] itemsC = line.Split(",");
//Logic here: check if itemC has one result from container, skip to the next line in numberOfItems.txt
}
}
}
Комментарии:
1. Действительно ли в вашем
.txt
файле больше одной строки? Похоже, у вас действительно есть только одна строка значений, разделенных запятыми. Вам нужно будет выполнить итерацию вашегоitemsC
массива. Если я правильно это читаю. Ваш точный вопрос на самом деле не совсем ясен.2. @ScottWelker мой .txt содержит 10 строк, я хочу проверить, соответствует ли значение, получаемое из .txt, данным из базы данных, добавленным в список, и перейти к следующей строке, не добавляя более одного элемента.
3. Если в вашем файле всего 10 строк, честно говоря, пропустите
StreamReader
и просто используйтеFile.ReadAllLines
, чтобы все это было в аstring[]
. Тогда пропустить строку так же просто, как прочитать следующий элемент в массиве.4. Утверждение » Продолжить «, по-видимому, является ответом на ваш вопрос, но я действительно не думаю, что это то, что вы хотели спросить.
5. При использовании
ReadLine
на aStreamReader
считыватель начинается с текущей позиции и читает до тех пор , пока не увидит конец строки, а затем возвращает строку текста в виде строки. Строки могут быть длинными или пустыми, поэтому нет никакого волшебства «перейти к следующей строке». Что вы хотите сделать, так это то, что если вы решите пропустить следующую строку, вы установите флажок с надписьюignoreNextLine
. Когда флаг установлен, вы читаете следующую строку, но не обрабатываете ее (единственная обработка, которую вы выполняете, — это очисткаignoreNextLine
флага).
Ответ №1:
Существует вероятность того, что программа чтения потока считывает все как строку, поэтому вы можете использовать цикл, чтобы игнорировать все, пока не нажмете символ n
(новой строки), или просто System.Linq.Enumerable.SkipWhile()
пропустить каждый символ, пока не найдете символ новой строки.