我有一個Equal()方法來查看OrderNumber是否已經放入或未放入。我不知道如何在for循環數組中調用它。C#如何在for循環數組中實現Equal()方法?
這是我平等法
public override bool Equals(object e)
{
bool equal;
Order temp = (Order)e;
if(OrderNumber == temp.OrderNumber)
equal = true;
else
equal = false;
return equal;
}
這是主要的()
public class week_6
{
public static void Main(string[] args)
{
ShippedOrder[] InputOrder = new ShippedOrder[5];
int x;
for(x= 0; x < InputOrder.Length; ++x)
{
InputOrder[x] = new ShippedOrder();
Console.Write("Enter order number: ");
InputOrder[x].OrderNumber = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter customer name: ");
InputOrder[x].CustName = Console.ReadLine();
Console.Write("Enter quantity: ");
InputOrder[x].Quantity = Convert.ToInt32(Console.ReadLine());
}
的SippedOrder類的輸入部分是一個子類Order類的。該程序編譯並運行正常,而不嘗試用equals方法做任何事情。
我想有,如果他們把它說了同樣的訂單號碼是其中「對不起,訂單號‘###’是重複的。 請重新輸入」
任何幫助將是非常讚賞
請問您能否更清楚地回答您的問題?你問哪一部分?如何使用'Equals()'方法覆蓋並使用它來確定是否向用戶顯示控制檯消息?或者當你檢測到使用你的'Equals()'覆蓋輸入了相同的命令時,你是否問如何打破循環? – dawebber 2011-04-24 16:17:10
我只是想比較輸入的訂單號和以前的訂單號。如果他們是相同的消息彈出。我不知道如何做到這一點,認爲平等方法是最好的方法。 – Joel 2011-04-24 16:22:30
如果您重寫'Equals',請確保您重寫'GetHashCode'。如果您選擇使用'HashSet'來跟蹤以前的訂單,這將尤其重要。請參閱http://msdn.microsoft.com/en-us/library/336aedhh.aspx – 2011-04-24 17:48:03