powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Списки List<>
22 сообщений из 22, страница 1 из 1
Списки List<>
    #38267357
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажите пожалуйста, как реализовать список с неизвестным количеством столбцов?

есть
авторList<string> dinosaurs = new List<string>();
а надо
авторList<string,int,int,int,int,int........> dinosaurs = new List<string,int,int,int,int,int........>();

заранее количество int не известно...

куда копать?

Заранее благодарен.
...
Рейтинг: 0 / 0
Списки List<>
    #38267372
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah,

столбцы у списка это 5)
...
Рейтинг: 0 / 0
Списки List<>
    #38267375
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouch,

Копай в массивы
...
Рейтинг: 0 / 0
Списки List<>
    #38267378
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisLelouch,

Копай в массивы

Ой :)
...
Рейтинг: 0 / 0
Списки List<>
    #38267387
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataTable сгодится?
...
Рейтинг: 0 / 0
Списки List<>
    #38267394
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot vah]Скажите пожалуйста, как реализовать список с неизвестным количеством столбцов?[quot]
Обычно такие проблемы возникают при неправильном проектировании приложения, пересмотрите архитектуру, может там уже пора какой-нибудь шаблон проектирования применить.
...
Рейтинг: 0 / 0
Списки List<>
    #38267412
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lelouchvah,

столбцы у списка это 5)

не, ну список ведь претендует на звание массива... почему бы ему не стать многомерным?
...
Рейтинг: 0 / 0
Списки List<>
    #38267421
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah,

http://ru.wikipedia.org/wiki/Список_(информатика)

На что там список "претендует" ?
...
Рейтинг: 0 / 0
Списки List<>
    #38267429
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или
ИзопропилDataTable сгодится?
Или, например,
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Dinosaur
{
    public string StringProperty { get; set; }

    public List<int> ListOfIntProperty { get; private set; }

    public Dinosaur()
    {
        this.ListOfIntProperty = new List<int>();
    }
}
...
Рейтинг: 0 / 0
Списки List<>
    #38267467
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah, что делать с объектом будешь? Он как элемент программы ни на что не годиться…
...
Рейтинг: 0 / 0
Списки List<>
    #38267608
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skolevah, что делать с объектом будешь? Он как элемент программы ни на что не годиться…

просто массив надо выкинуть в excel, подумал - может со списком будет покрасивше...
...
Рейтинг: 0 / 0
Списки List<>
    #38267790
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vah,
Tuple
...
Рейтинг: 0 / 0
Списки List<>
    #38267828
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВvah,
Tuple
как это поможет выгрузке в эксель?
...
Рейтинг: 0 / 0
Списки List<>
    #38267873
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vahпросто массив надо выкинуть в excel, подумал - может со списком будет покрасивше...Тогда следует создать класс и заполнить его нужными данными:
Lelouch
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Dinosaur
{
    public string StringProperty { get; set; }

    public List<int> ListOfIntProperty { get; private set; }

    public Dinosaur()
    {
        this.ListOfIntProperty = new List<int>();
    }
}
...
Рейтинг: 0 / 0
Списки List<>
    #38267887
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А реально на практике, где можно применить списки, например в клиентской форме..?
...
Рейтинг: 0 / 0
Списки List<>
    #38267914
Фотография The Dwarf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. tuple

А ещё лучше сделать класс Динозавр с членами int и сделать уже список динозавров.
...
Рейтинг: 0 / 0
Списки List<>
    #38267929
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилЕвгенийВvah,
Tuple
как это поможет выгрузке в эксель?
ТС хочет список кортежей, что и есть List<Tuple<.... - это структура данных для задачи, а как ее преобразет во что то иное, вопрос второй.
...
Рейтинг: 0 / 0
Списки List<>
    #38267935
Фотография valex13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гораздо удобнее таблицу (DataTable или DataGridView) экспортировать в Эксель, т.к. сам Эксель и есть таблица :-)
Ну например так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
  ''' <summary>
    ''' Выгрузить данные в Эксель
    ''' </summary>
    ''' <param name="objGrid"></param>
    ''' <remarks></remarks>
    Public Shared Sub ExportToExcel(ByVal objGrid As DataGridView)
        If objGrid Is Nothing Then Return
        Dim oApp                 ' Объект MS EXCEL.APPLICATION
        Dim oWorkbook            ' Объект MS EXCEL.WORKBOOK
        Dim oSheet               ' Объект MS EXCEL.SHEET

        Dim frmWait As frmWaiting = New frmWaiting()
        frmWait.Show()

        Try
            frmWait.Message = "Открываем MS Excel"

            oApp = GetObject("", "Excel.Application")
            oWorkbook = oApp.WorkBooks.Add()
            oSheet = oApp.Sheets(1).Select()

            frmWait.Message = "Формируем заголовок"

            ' Формируем заголовок
            Dim nCount As Integer = 1
            For Each Item As DataGridViewColumn In objGrid.Columns
                If Item.Visible Then
                    oApp.Cells(1, nCount).Value = Item.HeaderText.ToString
                    oApp.Cells(1, nCount).Font.Bold = True

                    oApp.Cells(1, nCount).Font.Bold = True
                    nCount += 1
                End If
            Next

            frmWait.Message = "Формируем данные"

            ' Формируем данные
            Dim nCountRow As Integer = 2
            nCount = 1

            For Each RowItem As DataGridViewRow In objGrid.Rows
                nCount = 1
                For Each ColumnItem As DataGridViewColumn In objGrid.Columns
                    If ColumnItem.Visible Then
                        oApp.Cells(nCountRow, nCount).Value = RowItem.Cells(ColumnItem.Name).Value.ToString
                        nCount += 1
                    End If
                Next
                nCountRow += 1
            Next

            frmWait.Close()
            oApp.Visible = True
        Catch ex As Exception
            oApp = Nothing
            frmWait.Close()

            MsgBox("Ошибка при открытии MS Excel!" + vbCrLf + ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Ошибка")
        End Try

    End Sub
...
Рейтинг: 0 / 0
Списки List<>
    #38267945
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valex13, вот это плохой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            For Each RowItem As DataGridViewRow In objGrid.Rows
                nCount = 1
                For Each ColumnItem As DataGridViewColumn In objGrid.Columns
                    If ColumnItem.Visible Then
                        oApp.Cells(nCountRow, nCount).Value = RowItem.Cells(ColumnItem.Name).Value.ToString
                        nCount += 1
                    End If
                Next
                nCountRow += 1
            Next

Обращение к Excel, в данном случае к отдельной ячейке - затратная операция. Разом заплнить строку (Range) гораздо производительней.
...
Рейтинг: 0 / 0
Списки List<>
    #38268572
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвот это плохой код
Это ерунда по сравнению с поздний / ранним связыванием. Вот где плохой код.
...
Рейтинг: 0 / 0
Списки List<>
    #38268583
Gagarin_74
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAvalex13, вот это плохой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            For Each RowItem As DataGridViewRow In objGrid.Rows
                nCount = 1
                For Each ColumnItem As DataGridViewColumn In objGrid.Columns
                    If ColumnItem.Visible Then
                        oApp.Cells(nCountRow, nCount).Value = RowItem.Cells(ColumnItem.Name).Value.ToString
                        nCount += 1
                    End If
                Next
                nCountRow += 1
            Next

Обращение к Excel, в данном случае к отдельной ячейке - затратная операция. Разом заплнить строку (Range) гораздо производительней.

А какой код написать что-бы разом из массива в Excel данные воткнуть?
...
Рейтинг: 0 / 0
Списки List<>
    #38268606
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gagarin_74
А какой код написать что-бы разом из массива в Excel данные воткнуть?

Код: sql
1.
2.
3.
4.
object[,] data_ = new object[x, y];
..............
Microsoft.Office.Interop.Excel.Range excelcells = ws.get_Range(ws.Cells[1, 1], ws.Cells[x+1,y+1]);
excelcells.Value2 = data_;
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Списки List<>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]