Member 9983063 Ответов: 1

Как обновить строку entity framework в listbox


Привет, ребята, я работаю над проектом, и я сталкиваюсь с проблемой, если я добавляю элемент в список, так что элементы добавляются успешно, и теперь я хочу, если я добавляю те же элементы два раза, так что его не добавить 2 раза, это добавить 1 раз, но это показать количество с суммой мультипликации.

я использую этот код для добавления элементов в список
Button b = (Button)sender;
                 tblProduct tp2 = (tblProduct)b.Tag;
                 string product2 = tp2.productName;
                 listBox2.Text = tp2.ToString();
                 products2.Add(tp2);
                 total2 += (decimal)tp2.productPrice;



Пожалуйста, посмотрите на это изображение:
Показывает: наиболее удивительных изображений в Интернете[^]

Что я уже пробовал:

int Qlty = +1;
строка ProductName = ((tblProduct)e.ListItem). productName;
string Price = "Rs:" + String.Формат("{0:}", ((tblProduct) e.ListItem). productPrice);
строка ProductNamePadded = ProductName.PadRight(33);
e. Value = ProductNamePadded+Qlty+Price;

Richard MacCutchan

Вам нужно проверить, находится ли этот элемент уже в списке.

Member 9983063

именно это мне и нужно.Но я не знаю как это сделать пожалуйста помогите мне с этим

Member 9983063

сэр я нашел решение как проверить есть ли элемент уже в списке
вот решение
var duplicates = products.GroupBy(i => i. productName)
. Где (x = & gt; x.Count() > 1)
.Выберите(вал => В знач.Ключ);

по каждому элементу (ВАР продукт в дубликаты)
{
// теперь, пожалуйста, скажите мне, какой код я пишу здесь, чтобы решить проблему
}

1 Ответов

Рейтинг:
1

njammy

Я бы спроектировал объекты следующим образом. Это решение можно скопировать в консольное приложение, чтобы протестировать его.
Смотрите, как он работает здесь[^]

Обратите внимание, что я добавил метод заглушки для вас, чтобы проверить, если элемент уже добавлен, хотя следующая логика должна помочь вам избежать необходимости проверять вручную и утомительно, если что-то уже есть в списке.

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
	public void Main()
	{
		// Simulate order
		Order order = new Order
		{
			TableNumber = "Table 1",
			Products = new List<Product>
			{
				new Product { Name = "Item 1", Price = 100.00m, Quantity = 3},
				new Product { Name = "Item 2", Price = 89.00m, Quantity = 2},
				new Product { Name = "Item 3", Price = 50.00m, Quantity = 1 }
			}
		};
		
		
		foreach(var p in order.Products)
		{
			Console.WriteLine(p.Name + " (Each: " + p.Price + ")" + " - Qty: " + p.Quantity + " (" + p.Total() + ")");
		}
	}
}

public class Order
{
	public List<Product> Products { get; set; }

	public string TableNumber{get;set;}
	
	public decimal Total()
	{
		if (Products.Any())
			return Products.Sum(x => x.Price);
		return 0.00m;
	}

	public Order()
	{
		Products = new List<Product>();
	}
	
	public void RemoveProduct()
	{
		// Implement here remove logic
	}
	
	public bool IsAdded(string productName)
	{
		return Products.Any(x=>x.Name.ToLower() == productName.ToLower());
	}
}

public class Product
{
	public string Name { get; set; }
	public decimal Price { get; set; }
	public int Quantity { get; set; }
	
	public decimal Total()
	{
		return Price * Quantity;
	}
}