Bagaimana saya bisa membuat array paralel sesuai tabel di bawah ini? Makanan | Harga masing-masing 1-10 | 14,99 11-20 | 12.50 21-39 | 10,75 40 atau lebih | 9.45 Saya mencoba seperti di bawah ini: int[] mealOrder = {1, 2, ....

c#
1
tengkuzulfadli 9 April 2021, 16:44

2 jawaban

Jawaban Terbaik

Jangan membuat array independen dengan data yang tidak independen. Anda akan tersandung dengan setiap ekstensi baru. Sortir, hapus, perpanjang, ...

Cobalah sesuatu seperti ini:


public class MealPrice
{
    public int MealOrders { get; set; }
    public decimal MealPriceEach { get; set; }
}

...

public List<MealPrice> MealPriceList;

[sunting] penamaan yang lebih baik

Fungsi untuk mendapatkan harga bisa seperti ini (belum diuji)


public decimal GetPrice(int mealOrders)
{
    // ! Error handling missing
    return MealPriceList
        // Get all prices that fit our amount of mealOrders
        .Where(mp => mealOrders >= mp.MealOrders)
        // get the lowest price
        .Min(mp => mp.MealPriceEach);
}

4
Klamsi 9 April 2021, 14:14

Jika Anda menyimpan kuantitas dalam urutan menurun, Anda dapat menggunakan Tuple<int, decimal> dan List<Tuple<int, decimal>> untuk mengambil harga dengan Find() dan lambda:

  public static void Main (string[] args) {
    List<Tuple<int, decimal>> prices = new List<Tuple<int, decimal>>();
    prices.Add(Tuple.Create(40, 9.45m));
    prices.Add(Tuple.Create(21, 10.75m));
    prices.Add(Tuple.Create(11, 12.50m));
    prices.Add(Tuple.Create(0, 14.99m));

    int quantity = 23;
    decimal price = prices.Find(p => (quantity >= p.Item1)).Item2;
    Console.WriteLine("quantity: " + quantity + " | price: " + price);
  }
1
Idle_Mind 9 April 2021, 13:59