[英]Add to array and return array values - C#
編碼的新手,這可能是相當基本的,但是可以得到幫助。
我相信我如何將note2
添加到majorScale[]
。 塊完成后,它將返回System.String[]
而不是我期望的實際數組。
public static string[] majorScaleOfNote (string tonic)
{
string[] intervals = { "M2", "M3", "P4", "P5", "M6", "M7" };
string[] majorScale = new string[7];
majorScale [0] = tonic;
foreach (string interval in intervals) {
string note2 = intervalUpToNote (tonic, interval);
majorScale[Array.IndexOf (intervals, interval) + 1] = note2;
}
return majorScale;
}
我將問題縮小到string[] majorScale
。 當我運行沒有此功能的東西時,它會產生正確的結果。 像這樣:
Console.WriteLine (tonic);
string[] intervals = { "M2", "M3", "P4", "P5", "M6", "M7" };
foreach (string interval in intervals) {
string note2 = intervalUpToNote (tonic, interval);
Console.WriteLine (note2);
}
有沒有與我加入方式的問題, note2
,以majorScale
? 還是還有其他問題? 任何幫助表示贊賞!
問題很可能不在此方法中,而是在調用方法中使用方法執行的結果。
我猜想,您稍后嘗試對Console.WriteLine
數組的內容進行如下操作:
string[] result = majorScaleOfNote("M1");
Console.WriteLine(result);
您不能以這種方式輸出數組。
C#將.ToString()
應用於所有對象以獲取其字符串表示形式。 數組沒有自己的ToString()
方法,這導致調用最基類Object
的.ToString()
。 它只是執行以下操作:
public virtual String ToString()
{
return GetType().ToString();
}
因此,它將其類型輸出到System.String[]
。
如果要輸出數組的所有元素,則可以嘗試自己遍歷它並逐一輸出字符串:
string[] result = majorScaleOfNote("M1");
foreach (var note in result)
Console.WriteLine(result);
或者,您可以使用String.Join
方法,該方法使用提供的分隔符連接字符串:
string[] result = majorScaleOfNote("M1");
Console.WriteLine(string.Join(", ", result));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.