Есть вот такой класс
public class User
{
public string Name { get; set; }
public OrgItem orgItem { get; set; }
}
Создаю и заполняю список данными
var newList = new List<User>();
newList.Add(new User { Name = "elv", orgItem = new OrgItem { Id = 1, Name = "test1" } });
newList.Add(new User { Name = "elv2", orgItem = new OrgItem { Id = 1, Name = "test1" } });
newList.Add(new User { Name = "elv3", orgItem = new OrgItem { Id = 1, Name = "test1" } });
newList.Add(new User { Name = "elv11", orgItem = new OrgItem { Id = 3, Name = "test3" } });
Далее , группирую список по orgItem
var model = newList.GroupBy(x => x.orgItem.Id);
В получившемся сгруппированном списке мне необходимо переместить elv3 в группировку с OrgItem Id=3 и при этом удалить из группировки с Id=1. Как это возможно сделать?
Заранее это сделать не возможно при получении данных, так как при любой замене данных, это всё меняется в БД, что отсекает такое решение.
Посмотрите на тип результата GroupBy: интерфейс IEnumerable<IGrouping<TKey, TSource>>
, и на IGrouping: public interface IGrouping<out TKey, out TElement>
: IEnumerable<TElement>, IEnumerable
Все завязано на IEnumerable, который не предполагает изменений коллекции. Поэтому если не уйти от типа результата группировки, то задачу не решить.
Ну а найти нужный элемент для операций удаления и вставки можно так:
var searchName = "elv3";
var itemId = model.Where(e => e.Any(i => i.Name == searchName)).Single().Key;
var item = model.Single(e => e.Key == itemId).FirstOrDefault(e => e.Name == searchName);
Получить список без него:
var _a = model.Where(e => e.Key == itemId).Single().ToList().Where(e => e.Name != item.Name);
Ну а дальше думайте как вам все это передать дальше и в каком типе
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть класс и код, взаимодействующий с нимПри сборке возникают ошибки непонятно по какой причине - все модификаторы установлены как public
Подскажите, я создал Progress Bar по паттерну MVVM в отдельной сборке, в View добавил DataContect -View Model и теперь мне нужно его подключить в другой сборке...