Как мы можем эффективно читать только целые числа из текстового файла в С#

В C++ мы можем определить пользовательскую локаль, которая позволяет объекту потока игнорировать нецифровые значения в файле и считывать только целые числа.

Можем ли мы сделать нечто подобное? Как мы можем эффективно читать только целые числа из текстового файла? Использует ли объект потока С# локаль? Если да, можем ли мы определить пользовательскую локаль, которую мы можем использовать с объектом потока, чтобы игнорировать нежелательные символы при чтении файла?


Вот один пример на C++, который эффективно подсчитывает частоту слов в текстовом файле:

Элегантные способы подсчета частоты слов в файле< /а>


person Nawaz    schedule 07.02.2011    source источник
comment
Может быть, если это возможно, вы могли бы использовать Managed C++ для выполнения задачи?   -  person Uwe Keim    schedule 07.02.2011


Ответы (1)


Мое предложение:

            public void ReadJustNumbers()
            {
                Regex r = new Regex(@"\d+"); 
                using (var sr = new StreamReader("xxx"))
                {
                    string line;
                    while (null != (line=sr.ReadLine()))
                    {
                        foreach (Match m in r.Matches(line))
                        {
                            Console.WriteLine(m.Value);
                        }
                    }
                }
            }

где xxx — имя файла, очевидно, вы будете использовать совпадающую цифру более элегантным способом, чем вывод на консоль;)

person Felice Pollano    schedule 07.02.2011