sam
sam

Reputation: 287

Avoid duplicate entries in List<SelectListItem>

How can I check that List< SelectListItem> doesn't contain or insert any duplicates in Mvc3. I have tried with !Contains

Thanks

Upvotes: 3

Views: 2704

Answers (2)

hydr
hydr

Reputation: 408

Try this:

var list = new List<SelectListItem>();
list.Add(new SelectListItem { Text = "Some Text", Value = "Some Value" });
list.Add(new SelectListItem { Text = "Other Text", Value = "Other Value" });

var selectListItem = new SelectListItem { Text = "Some Text", Value = "Some Value" };
if(!list.Any(l => l.Value == selectListItem.Value)
{
    list.Add(selectListItem);
}

.Contains() compares if the object reference, not the Value property

Upvotes: 5

Emeka Awagu
Emeka Awagu

Reputation: 11

var list = new List<SelectListItem>();

var selectListItem = new SelectListItem { Text = "Some Text", Value = "Some Value" };
if(list.FirstOrDefault(t => t.Value != selectListItem.Value) == null)
{
    list.Add(selectListItem);
}

Upvotes: 0

Related Questions