c#, создающий файл с помощью memorystream вместо автора учебника

Предположим, у вас есть привязка List of Student к comboBox с Id в качестве ValueMember & amp; Назовите DisplayMember, затем On SelectedIndexChange используйте следующий код:

if (combobox.SelectedValue is IConvertible)
        {
            int id = Convert.ToInt32(combobox.SelectedValue);
            string name = combobox.Text;

            // Or

            Student student = cmbCars.SelectedValue as Student;
            int idd = student.Id;
            string names = student.Name;

        }

Это должно работать!

31
задан tmcallaghan 23 April 2009 в 13:02
поделиться

2 ответа

Вы можете сделать:

MemoryStream  memoryStream = new MemoryStream();
TextWriter tw = new StreamWriter(memoryStream);

tw.WriteLine("ref\tACCOUNT\tbatch\tDEBIT\tCREDIT\tDesc");
86
ответ дан 27 November 2019 в 21:32
поделиться

Я также хотел бы предположить, что сейчас самое время попытаться отделить части вашего приложения, чтобы вы могли изменить его в будущем. Итак, TextWriter - хорошая абстракция для потока, доступного для записи, но рассмотрите возможность абстрагирования вашего класса экспорта.

Например, теперь вы хотите сделать это следующим образом:

MemoryStream  memoryStream = new MemoryStream();
TextWriter tw = new StreamWriter(memoryStream);

// tab-delimited export
IExporter exporter = new DelimiterExport(data, tw, "\t"); 
exporter.Export();

, чтобы вы могли легко изменить его к:

// csv file (stands for "comma separated value", but you should actually
// use a culture-specific list separator instead)
var separator = Thread.CurrentThread.CurrentCulture.TextInfo.ListSeparator;
IExporter exporter = new DelimiterExport(data, tw, separator);

или любой другой реализации:

// excel export
IExporter exporter = new ExcelExport(data, tw);

Предоставляя независимый от протокола интерфейс сейчас, вы упростите себе жизнь позже.

6
ответ дан 27 November 2019 в 21:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: