как вставить текстовый файл в <list> - PullRequest
0 голосов
/ 23 января 2011

как вставить текстовый файл в <list>, например, текстовый файл:

1. this error
2. delete ?
3. add new ?

как вставить и как получить сообщение по номеру

например для номера 2 я получу delete ?

заранее спасибо

Ответы [ 2 ]

4 голосов
/ 23 января 2011

Быстро и грязно:

var lines = File.ReadAllLines("Questions.txt");
var questions = new Dictionary<int, string>();
foreach (var line in lines)
{
    var parts = line.Split(new[] {". "}, StringSplitOptions.RemoveEmptyEntries);
    var number = Int32.Parse(parts[0]);
    questions.Add(number, parts[1]);
}

Чтобы получить вопрос 2:

var q2 = questions[2];

Пример:

class Quiz
{
    private Dictionary<int,string> _questions;

    public Quiz(string questionsFileName)
    {
        LoadQuestions(questionsFileName);
    }

    public string PoseQuestion(int number)
    {
        Console.WriteLine(_questions[number]);
    }

    private LoadQuestions(string fileName)
    {
        var lines = File.ReadAllLines(fileName);
        _questions = new Dictionary<int, string>();
        foreach (var line in lines)
        {
            var parts = line.Split(new[] {". "}, StringSplitOptions.RemoveEmptyEntries);
            var number = Int32.Parse(parts[0]);
            _questions.Add(number, parts[1]);
        } 
    }
}
3 голосов
/ 23 января 2011

Я не скомпилировал, но если я вас правильно понял, вы ищете что-то похожее на этоВы должны добавить соответствующую обработку ошибок.

Dictionary<int, string> map = new Dictionary<int, string>();    

using (FileStream fs = new FileStream(inputFile, FileMode.Open)
using (StreamReader sr = new StreamReader(fs)
{
    while (sr.Peek() >= 0) 
    {
        string[] split = string.Split(".", sr.ReadLine());

        int num = int.Parse(split[0]);
        string msg = split[1];

        map.Add(num, msg);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...