У меня есть собственный класс, содержащий 2 общедоступных переменных: 1 - это строка, а 1 - целое число. Затем я создаю список этого класса. Мне нужно, чтобы строка класса была уникальной, если строка уже существует в списке, я не хочу добавлять его снова, но я хочу объединить соответствующие целые числа. здесь приведен пример пользовательского класса и списка.Сравнение одного элемента объекта в списке?
public class myItems
{
public string itemName;
public int count;
}
List<myItems> items = new List<myItems>();
myItems e = new myItems();
e.symbol = "pencil";
e.count = 3;
items.Add(e);
myItems e1 = new myItems();
e1.symbol = "eraser";
e1.count = 4;
items.Add(e1);
myItems e2 = new myItems();
e1.symbol = "pencil";
e1.count = 3;
items.Add(e5);
Таким образом, для окончательного списка я хочу к нему содержать: карандаш 7, ластик 4. Я использую содержит функцию в списке, чтобы проверить, если он уже существует, но она только возвращает истину, если обе строки и integer одинаковы.
Есть ли способ соответствовать только строке?
Это не получает основную проблему, которая является то, что # проверка равенства по умолчанию C проверяет только равенство ссылок , а не равенство значений. –
@amitpatel да, это то, что я пытался, но он вернет true, только если символ и счет совпадают, например: карандаш 4, карандаш 4, вернет true, но карандаш 4, карандаш 3, вернет false, потому что числа не совпадают – Beef