"Cust1", "CustomerFirstName","CustomerLastName","Street1", "City1","OrderId1","OrderName1"
"Cust1", "CustomerFirstName","CustomerLastName","Street2", "City2","OrderId2","OrderName2"
"Cust2", "CustomerFirstName","CustomerLastName","Street3", "City3","OrderId3","OrderName3"
Я использую CsvHelper для сопоставления с помощью ClassMap этого объекта, содержащего списки адресов и порядка.
public class Customer {
public int CusomerId {get; set;}
public string CustomerFirstName {get; set;}
public string CustomerLastName {get; set;}
public IList Addresses {get; set;}
public IList Orders { get; set;}
}
public class Addresses {
public string Street {get; set;}
public string City {get; set;}
}
public class Order {
public string OrderId {get; set;}
public string OrderName {get; set;}
}
Я хочу преобразовать несколько строк для клиентов в объекты Customer, сгруппированные по CusomerId, где клиенты могут иметь или не иметь различные адреса и заказы.
В на данный момент я могу получить доступ к данным только в том виде, в каком они есть в формате CSV:
using (var reader = new StreamReader())
using (var csv = new CsvReader(reader, cultureInfo.InvariantCulture))
{
csv.Context.RegisterClassMap();
var records = csv.GetRecords();
var groupedContacts = (from customer in customers
group customer by new { contact.CustId } into customers
select new
{
CustId = customers.Key.custId,
ContactInfo = contacts.Select(gcustomers => gCustomers).ToList()
}).ToList();
}
Карта классов:
public class CustomerMap : ClassMap
{
public StudentContactModelMap()
{
Map(m => m.CusomerId).Name("CusomerId");
Map(m => m.CustomerFirstName).Name("CustomerFirstName");
Map(m => m.CustomerLastName).Name("CustomerLastName");
Map(m => m.Addresses).Convert(args =>
{
var AddressList = new List
{
new Address {
Street = args.Row.GetField("Street"),
City = args.Row.GetField("City")
},
};
return list;
});
Map(m => m.Orders).Convert(args =>
{
var orderList = new List
{
new Order {
OrderId = args.Row.GetField("OrderId"),
OrderName = args.Row.GetField("OrderName")
},
};
return list;
});
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... umn-on-csv
CsvHelper — чтение нескольких строк в один список, сгруппированный по столбцу в CSV. ⇐ C#
Место общения программистов C#
1734099279
Anonymous
"Cust1", "CustomerFirstName","CustomerLastName","Street1", "City1","OrderId1","OrderName1"
"Cust1", "CustomerFirstName","CustomerLastName","Street2", "City2","OrderId2","OrderName2"
"Cust2", "CustomerFirstName","CustomerLastName","Street3", "City3","OrderId3","OrderName3"
Я использую CsvHelper для сопоставления с помощью ClassMap этого объекта, содержащего списки адресов и порядка.
public class Customer {
public int CusomerId {get; set;}
public string CustomerFirstName {get; set;}
public string CustomerLastName {get; set;}
public IList Addresses {get; set;}
public IList Orders { get; set;}
}
public class Addresses {
public string Street {get; set;}
public string City {get; set;}
}
public class Order {
public string OrderId {get; set;}
public string OrderName {get; set;}
}
Я хочу преобразовать несколько строк для клиентов в объекты Customer, сгруппированные по CusomerId, где клиенты могут иметь или не иметь различные адреса и заказы.
В на данный момент я могу получить доступ к данным только в том виде, в каком они есть в формате CSV:
using (var reader = new StreamReader())
using (var csv = new CsvReader(reader, cultureInfo.InvariantCulture))
{
csv.Context.RegisterClassMap();
var records = csv.GetRecords();
var groupedContacts = (from customer in customers
group customer by new { contact.CustId } into customers
select new
{
CustId = customers.Key.custId,
ContactInfo = contacts.Select(gcustomers => gCustomers).ToList()
}).ToList();
}
Карта классов:
public class CustomerMap : ClassMap
{
public StudentContactModelMap()
{
Map(m => m.CusomerId).Name("CusomerId");
Map(m => m.CustomerFirstName).Name("CustomerFirstName");
Map(m => m.CustomerLastName).Name("CustomerLastName");
Map(m => m.Addresses).Convert(args =>
{
var AddressList = new List
{
new Address {
Street = args.Row.GetField("Street"),
City = args.Row.GetField("City")
},
};
return list;
});
Map(m => m.Orders).Convert(args =>
{
var orderList = new List
{
new Order {
OrderId = args.Row.GetField("OrderId"),
OrderName = args.Row.GetField("OrderName")
},
};
return list;
});
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79278492/csvhelper-read-multiple-rows-to-a-single-list-grouped-by-a-column-on-csv[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия