私が使用するJavaで、配列を変更するいくつかのメソッドを呼び出した後、配列の内容を出力しようとしています:
System.out.print(Arrays.toString(alg.id));
c#でこれを行うにはどうすればよいですか?
これを試すことができます:
foreach(var item in yourArray)
{
Console.WriteLine(item.ToString());
}
また、次のようなことを試してみてください。
yourArray.ToList().ForEach(i => Console.WriteLine(i.ToString()));
編集: [コメントに基づいて]1行で出力を取得するには:
Console.WriteLine("[{0}]", string.Join(", ", yourArray));
//output style: [8, 1, 8, 8, 4, 8, 6, 8, 8, 8]
編集(2019):他の回答で言及されているように、Array.ForEach<T>
メソッドを使用する方が適切であり、手順を実行する必要はありませんToList
。
Array.ForEach(yourArray, Console.WriteLine);
それを行うには多くの方法があります。他の答えは良いです。ここに代替手段があります:
Console.WriteLine(string.Join("\n", myArrayOfObjects));
C# では、各要素を出力する配列をループできます。System.Object がメソッド ToString() を定義していることに注意してください。System.Object() から派生した特定の型は、それをオーバーライドできます。
現在のオブジェクトを表す文字列を返します。
http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx
デフォルトでは、オブジェクトの完全な型名が出力されますが、多くの組み込み型はそのデフォルトをオーバーライドして、より意味のある結果を出力します。独自のオブジェクトで ToString() をオーバーライドして、意味のある出力を提供できます。
foreach (var item in myArray)
{
Console.WriteLine(item.ToString()); // Assumes a console application
}
独自のクラス Foo がある場合、次のように ToString() をオーバーライドできます。
public class Foo
{
public override string ToString()
{
return "This is a formatted specific for the class Foo.";
}
}
かわいくしたい場合はIEnumerable<object>
、コンソールにシーケンスを書き込む拡張メソッドを作成できます。IEnumerable<T>
は T で共変であるため、これは任意の型の列挙型で機能します。
using System;
using System.Collections.Generic;
namespace Demo
{
internal static class Program
{
private static void Main(string[] args)
{
string[] array = new []{"One", "Two", "Three", "Four"};
array.Print();
Console.WriteLine();
object[] objArray = new object[] {"One", 2, 3.3, TimeSpan.FromDays(4), '5', 6.6f, 7.7m};
objArray.Print();
}
}
public static class MyEnumerableExt
{
public static void Print(this IEnumerable<object> @this)
{
foreach (var obj in @this)
Console.WriteLine(obj);
}
}
}
(テスト コード以外では使用しないと思います。)
マシュー・ワトソンによる拡張メソッドの回答に賛成票を投じましたが、Python から移行/訪問している場合は、そのようなメソッドが役立つ場合があります。
class Utils
{
static void dump<T>(IEnumerable<T> list, string glue="\n")
{
Console.WriteLine(string.Join(glue, list.Select(x => x.ToString())));
}
}
->これにより、指定されたセパレーターを使用してコレクションが印刷されます。それは非常に限られています (ネストされたコレクション?)。
スクリプト (つまり、Program.cs のみを含む C# コンソール アプリケーションで、ほとんどのことが で発生するProgram.Main
) の場合、これで問題ない場合があります。
これは、配列を使用して文字列を出力する最も簡単な方法です!!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace arraypracticeforstring
{
class Program
{
static void Main(string[] args)
{
string[] arr = new string[3] { "Snehal", "Janki", "Thakkar" };
foreach (string item in arr)
{
Console.WriteLine(item.ToString());
}
Console.ReadLine();
}
}
}