Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/89: Рейтинг темы: голосов - 89, средняя оценка - 4.79
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
1

List<string, string, string> есть ли в C# что-то подобное?

09.09.2012, 15:59. Показов 16810. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне надо добавить в List не только имя файла, но и некоторые строки из этого файла. Т.е. например, у меня есть в определенном директории куча xml файлов Мне надо найти только те файлы, в котором есть определенный таг, например <Data> ...</endData> и записать(куда-то) название этого файла, плис значение 2 тэгов Например <TimeStart>aaaa</TimeStart>
<TimeEnd> bbbbb</TimeEnd
Т.е. мне надо получить подобныи лист
1.xml aaaa bbbb
4.xml vvv ttt Несколько путанное обьяснение задачи Просто раньше мне надо было только имя файла Делала так-
C#
1
2
3
4
5
6
7
8
9
10
11
private List<string> filesname = new List<string>()
//...............
 DirectoryInfo di = new DirectoryInfo(directory);
            foreach (FileInfo f in di.GetFiles("*.xml"))
            {
               // if ((DateTime.Now - f.CreationTime).TotalSeconds <= 24 * 60 * 60)
               if (f.CreationTime > DateTime.Now.AddDays(-1))
                {
                    filesname.Add(f.FullName);                   
                }
            }
А теперь нужны еше данные(aaa. bbb) Вообщем, запуталась, помогите разобраться! Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2012, 15:59
Ответы с готовыми решениями:

Dictionary<string, List<string>> получить все подэлементы
Всем привет! Есть словарь Dictionary&lt;string, List&lt;string&gt;&gt; Dictionary&lt;string,...

Заполнить Dictionary<string, list<string>> из файла ресурсов
Всем привет! У меня появилась проблема, мне нужно заполнить Dictionary&lt;string, list&lt;string&gt;&gt; из...

Как Dictionary<string, List<string>> поместить в DataGrid ?
Здравствуйте. Подскажите пожалуйста как поместить в DataGrid словарь Dictionary&lt;string,...

List<Dictionary<String, String>> - заполнить данными datagridview
Есть переменная List&lt;Dictionary&lt;String, String&gt;&gt;, мне необходимо заполнить ей datagridview. Как...

11
72 / 72 / 6
Регистрация: 16.06.2012
Сообщений: 220
09.09.2012, 16:28 2
C#
1
2
3
4
5
struct SomeStruct
{
Переменные string и т.д.
}
List<SomeStruct> Переменная
То есть, чтобы сделать список, содержащий кучу параметров - заведите структуру (или класс) содержащий эти параметры =)
1
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
10.09.2012, 09:07  [ТС] 3
Сделала так
C#
1
2
3
4
5
6
7
8
9
10
11
 public class Listt<T, T1, T2,T3,T4,T5>
    {
        public Listt()
        {
 
        }
        public void Add(T item, T1 item1,T2 item2, T3 item3,T item4,T item5)
        {
 
        }
    }
Как мне написать счетчик? Т.е. чтобы я могла использовать как в обычном List
C#
1
Listt.Count()>0
? Спасибо!
0
Эксперт Java
4092 / 3826 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
10.09.2012, 09:25 4
Цитата Сообщение от iva_a Посмотреть сообщение
Как мне написать счетчик? Т.е. чтобы я могла использовать как в обычном List
Проблема не только в счетчике, вы попытались создать свой класс-список без фактической реализации. Ваш метод Add ничего не делает.

Не нужно усложнять себе жизнь - сделайте класс, в котором будут храниться все ваши данные, и используйте список от этого класса.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
class MyFileInformation
{
   public final string FileName;
   public final string SomeStringOne;
   public final string SomeStringTwo;
 
   public MyFileInformation(string FileName, string SomeStringOne, string SomeStringTwo)
   {
      this.FileName = FileName;
      this.SomeStringOne = SomeStringOne;
      this.SomeStringTwo = SomeStringTwo;
   }
}
C#
1
2
List<MyFileInformation> list = new List<MyFileInformation>();
list.Add(new MyFileInformation("1.txt", "1", "2"));
2
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
10.09.2012, 09:34  [ТС] 5
turbanoff,спасибо! А как мне потом обратиться к нужнои информации? Например, мне нужно из этого листа отдельно вытащить список имен фаилов(это будут имена attach файлов в функции, которая посылает е-маил, а в теле сообшения мне нужны именно эти строки "1" и "2" Т.е. прикрепленныи фаил должен быть "1.txt", а в message что-то типа - ФАил 1.txt содержит ошибку "1"
0
Эксперт Java
4092 / 3826 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
10.09.2012, 09:49 6
Так же как и полю любого другого класса.
C#
1
2
3
4
5
6
List<MyFileInformation> list = new List<MyFileInformation>();
list.Add(new MyFileInformation("1.txt", "1", "2"));
 
MyFileInformation first = list[0]; //объект целиком
string one = first.SomeStringOne; //поле объекта
one = list[0].SomeStringOne; //напрямую из списка
PS. Это же самые основы языка - создание классов.
2
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
11.09.2012, 12:30 7
можно использовать кортежи ( Tuple )
0
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
11.09.2012, 15:25  [ТС] 8
dondublon, спасибо, почитала про Tuple , но, честно говоря не поняла, чем они(он?) отличается от обыкновенного класса. Если не затруднит, обььясните "на пальцах", пожалуйста
0
Эксперт Python
4632 / 2050 / 361
Регистрация: 17.03.2012
Сообщений: 10,134
Записей в блоге: 6
11.09.2012, 15:35 9
Tuple - это когда на скорую руку надо слепить несколько элементарных значений.
В вашем случае будет так:
C#
1
List<Tuple<string, string, string>>
Каждый элемент списка - кортеж из трёх стрингов. Доступ к ним через Item1..3, создание - передача стрингов в конструктор.
1
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
08.12.2020, 13:26 10
Загугли C# кортежи - это как раз механизм, позволяющий, грубо говоря, несколько переменных объединять в одну переменную, без написания структур и классов.

Например:
C#
1
2
3
4
5
6
var myList = new List<(string, string, string)>();
myList.Add(("asdf", "2342", "asdf"));
 
//Более развёрнуто это делается так:
var newItem = ("фыва", "пшук", "шщеущ");
myList.Add(newItem);

На самом деле
C#
1
2
var myList = new List<(string, string, string)>();
var newItem = ("фыва", "пшук", "шщеущ");
это
C#
1
2
var myList = new List<ValueTuple<string, string, string>>();
var newItem = new ValueTuple<string, string, string>("фыва", "пшук", "шщеущ");
просто чтобы народ не сходил с ума от сложности синтаксиса, они придумали упрощённый способ написания этого дела, и тебе достаточно просто писать скобочки.
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,643
08.12.2020, 16:13 11
Только не будем забывать, что кортежами не надо злоупотреблять ведь всего его "поля" анонимны и не несут никакой смысловой нагрузки, что ухудшает читаемость кода.
0
171 / 27 / 16
Регистрация: 02.02.2014
Сообщений: 345
08.12.2020, 16:30 12
Цитата Сообщение от Usaga Посмотреть сообщение
Только не будем забывать, что кортежами не надо злоупотреблять ведь всего его "поля" анонимны и не несут никакой смысловой нагрузки, что ухудшает читаемость кода.
Частично это исправимо:
C#
1
2
3
4
5
var myList = new List<(string name, string family, string comment)>();
var newItem = ("фыва", "пшук", "шщеущ");
var newItem = (name:"фыва", family:"пшук", comment:"шщеущ");
var Name = newItem.name;
var Comment = newItem.comment;
Но согласен, злоупотреблять не стоит - читаемость ухудшается.
0
08.12.2020, 16:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2020, 16:30
Помогаю со студенческими работами здесь

Из XML считывать ключ/значение в List<string, string>
Привет, друзья. Помогите разобраться. Ничего полезного в интернете не нашел.. Нужно из XML попарно...

Разбить List<string> на несколько обьектов c List<string>
Задумался как я то кусочками все делить оказалось не так уж просто :scratch: List&lt;string&gt;...

Прочитать содержимое List<Dictionary<string, string>>
Всем привет. Задача следующая: метод возвращает содержимое типа List&lt;Dictionary&lt;string, string&gt;&gt; и...

List<Dictionary<string, string>> serialize to JObject
Добрый день. Еть следующая задачка. имеется список List&lt;Dictionary&lt;string, string&gt;&gt; data = new...

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population....

Создайте класс Animal. Добавьте поля string Name, string Kind, string Areal, int Population
Здравствуйте! По C# есть задачка, с которой я так и не разобрался :( Задача: Создайте...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru