0
私は本当にこの問題に固執しています。人と経費という2つのクラスがあります。 PersonにMyNameという名前のプロパティとList Expenseというメンバーがあります。 Expenseクラスでは、MyFoodCostというプロパティがあります。 MyFoodCostの経費を入力/更新できるフォームがあります。フォームには、さらに人が1人いるため、リストパーソンがいます。特定の人のMyFoodCost費用を更新したいのであれば、どうしたらいいですか?この特定の人はMyFoodCostの新しい更新コストを持っていますか?C#リスト[別のクラスのアイテムを
public class Expense
{
private decimal MyFoodCost;
public Expense(decimal food)
{
MyFoodCost = food;
}
public decimal FoodCost
{
set
{
MyFoodCost = value;
}
get
{
return MyFoodCost;
}
}
}
public class Person
{
private string MyName;
public List<Expense> MyExpense;
public Person(string name, decimal food)
{
MyName = name;
MyExpense = new List<Expense>();
MyExpense.Add(new Expense(food));
}
public string FullName
{
set
{
this.MyName = value;
}
get
{
return this.MyName;
}
}
}
public partial class BudgetForm : Form
{
public List<Person> person;
public BudgetForm()
{
InitializeComponent();
person = new List<Person>();
}
private void buttonAddExpense_Click(object sender, EventArgs e)
{
decimal food = 0;
food = decimal.Parse(TextBoxFood.Text);
string name = ComboBoxPerson.SelectedItem.ToString();
if(person.Count == 0)
{
person.Add(new Person(name, food));
}
else
{
Person you = person.FirstOrDefault(x => x.FullName == name);
if (you == null)
{
person.Add(new Person(name, food));
}
else
{
foreach (var item in person)
{
//check if person exists?
if (item.PersonName == name)
{
//person exists so update the food cost for him only.
//should i code to update the food
//or do somewhere else?
}
}
}
}
}
}
あなたの答えは間違いありません。どうもありがとうございます。新しい食費をインデックス0にするために "you.MyExpense.Add(..)"の前に "you.MyExpense.Clear()"を追加します。それ以外の場合は、そこに古い食費を加えたリストに追加し続けます。 – Phil
もう一度質問してください。 Personリストと経費をどのようにループしてBudgetFormに戻すことができますか? – Phil
総経費を把握しているだけの場合、なぜそれが 'リスト 'である必要がありますか?ちょうどそれを 'decimal'にしてください。 – smead