упрощенный сценарий:Как сохранить уникальный список перед сохранением базы данных? - C#
- У меня есть
List<Foo>
. Foo
имеет два свойства Описание (строка) IsFoo (BOOL)
Например:
var foos = new List<Foo>();
Пользователь может "добавить новый Foo в" с помощью текстовых полей, то on form submit Я делаю это:
foos.Add(new Foo { Description = txtOne.Text, IsFoo = true });
foos.SaveToDb();
Однако есть несколько Textboxes, и если, например, они печатают «FooBar» в текстовом поле один, то «FooBar» в текстовом поле два, я не хочу, чтобы показать ошибку, но я просто не хочу чтобы добавить их в коллекцию. (не беспокойтесь о причине этого, это упрощенный сценарий).
Мне не нужно ничего показывать в пользовательском интерфейсе, только когда они отправляют форму, прежде чем оставаться в базе данных, мне нужно удалить любые дубликаты (или предотвратить их добавление в список в первую очередь).
Какой самый простой/лучший способ сделать это? Возможно, словарь?
Я использую C# 4, LINQ, .NET 4.
Да, проблема в том, что «Foo» на самом деле является POCO, используемым для сохранения (не напрямую), поэтому я действительно не хочу добавлять к нему дополнительные метаданные (даже если это через частичный). «Альтернатива» будет работать, но у меня также есть ретранслятор на странице, и я использую 'AddRange' для добавления элементов, а не уверен, как применять' Any' к 'AddRange'. – RPM1984
Я закончил тем, что поместил вашу «альтернативу» в метод расширения (и еще один для addrange) и назвал это. Благодарю. – RPM1984
@RPM: Вы бы назвали 'Where', чтобы убрать элементы, которые вы добавляете, и пропускать только те, которые еще не существуют. – SLaks