好吧,我很確定isNumber終於工作。感謝大家的幫助。我想我已經準備好開始真正開展這個項目。我只是想把我的頭圍繞在列表上。列表只包含前兩項
我在做的是試圖一次檢查一堆輸入,如果它們是數字並將結果存儲在列表中。這樣,爲了找出它們中的一個是否是一個數字,我可以檢查第二個列表中的相應值以找出結果。
所以,我的問題是,我清楚地把3件東西放在我的列表中,但是當它打印出它總是顯示的項目數量時2.這是什麼問題?具體來說,爲什麼areNumbers總是返回一個長度爲2的列表,當我明顯地使它至少與numberOfNumbers一樣長?
PS我知道我的代碼看起來不太好。我想在瞭解風格之前就掌握基礎知識。
static void Main(string[] args)
{
var maybe = new ArrayList(3);
maybe.Add(100f);
maybe.Add("not a number");
maybe.Add(1000);
Console.WriteLine(areNumbers(maybe).Count);
Console.ReadLine();
}
static ArrayList areNumbers(ArrayList maybeNumbers)
{
var theResults = new ArrayList(0);
var numbersEnumerator = maybeNumbers.GetEnumerator();
var numberOfNumbers = 0;
try
{
for (; ;)
{
numberOfNumbers = numberOfNumbers + 1;
numbersEnumerator.MoveNext();
var myIsNumber = isNumber(numbersEnumerator.Current);
var myAreNumbers = new ArrayList(numberOfNumbers);
myAreNumbers.Add(theResults);
myAreNumbers.Add(myIsNumber);
theResults = myAreNumbers;
}
}
catch (InvalidOperationException)
{
return theResults;
}
}
static bool isNumber(object theObject)
{
var s = theObject.GetType().ToString().ToUpper();
Console.WriteLine(s);
return theObject is int || theObject is Int64 || theObject is float || theObject is double;
}
這是什麼行的用意何在? for(;;){ – 2012-02-03 19:01:52
無限循環? – Artur 2012-02-03 19:03:12
當MoveNext失敗時,看起來像Catch抓住它。奇怪,男人。 – Almo 2012-02-03 19:04:34