c# LINQでのToArrayの表示方法について
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2022/8/1 15:51:06
> Console.WriteLine(naserch.ToArray());
> ↑上手く表示されません。
そもそも、どのように表示したいのでしょうか?
一次元配列を Console.WriteLine すれば、【型名[]】と表示されるはずです。
メンバーを表示したいという意図であれば、ToArray の出番はありません。
たとえばこのように書けます。
どうしても ToArray にしたいとなれば、Name クラス側に
> ↑上手く表示されません。
そもそも、どのように表示したいのでしょうか?
一次元配列を Console.WriteLine すれば、【型名[]】と表示されるはずです。
int[] numbers = { 3, 1, 4, 1, 5, 9, 2 };
Console.WriteLine(numbers); // 【System.Int32[]】と表示されます
メンバーを表示したいという意図であれば、ToArray の出番はありません。
たとえばこのように書けます。
// Console.WriteLine(naserch.ToArray());
foreach (Name n in naserch)
{
Console.WriteLine("Jp={0}, En={1}", n.Japanese, n.English);
}
どうしても ToArray にしたいとなれば、Name クラス側に
public override string ToString() { return "Jp=" + Japanese + ", En=" + English; }
を追加した上で、呼び出し側を // Console.WriteLine(naserch.ToArray());
Array.ForEach(naserch.ToArray(), Console.WriteLine);
に変更するとか…。
投稿者 ケンケン  (社会人)
投稿日時
2022/8/1 16:03:53
Jp=在庫, En=Stock
上記の様に出したかったです。
とても参考になりました。
ありがとうございます。
因みに
Console.WriteLine(naserch.ToArray());
↓
Whereapp.Program+Name[] この様に出力されます。
よくわかりませんでした。
(・・;)
上記の様に出したかったです。
とても参考になりました。
ありがとうございます。
因みに
Console.WriteLine(naserch.ToArray());
↓
Whereapp.Program+Name[] この様に出力されます。
よくわかりませんでした。
(・・;)
投稿者 (削除されました)  ()
投稿日時
2022/8/1 16:41:51
(削除されました)
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2022/8/1 16:43:16
> Whereapp.Program+Name[] この様に出力されます。
"+" はクラス内のクラスのように、入れ子の型であることを示します。
現状は、下記の階層構造になっていますよね。
その場合、"Whereapp.Program+Name[]" と表示されます。
Name クラスが下記のように宣言されていれば、 "Whereapp.Name[]" になります。
Name クラスが下記のように宣言されていれば、 "Name[]" になります。
"+" はクラス内のクラスのように、入れ子の型であることを示します。
現状は、下記の階層構造になっていますよね。
その場合、"Whereapp.Program+Name[]" と表示されます。
namespace Whereapp
{
class Program
{
// 略
class Name
{
// 略
}
}
}
Name クラスが下記のように宣言されていれば、 "Whereapp.Name[]" になります。
namespace Whereapp
{
class Program
{
// 略
}
class Name
{
// 略
}
}
Name クラスが下記のように宣言されていれば、 "Name[]" になります。
namespace Whereapp
{
class Program
{
// 略
}
}
class Name
{
// 略
}
投稿者 ケンケン  (社会人)
投稿日時
2022/8/1 16:46:33
いろいろと勉強になります。
ありがとうございます。
ありがとうございます。
List<Name> namesserch = new List<Name>();
namesserch.Add(new Name("商品", "Product"));
namesserch.Add(new Name("商品名", "ProductName"));
namesserch.Add(new Name("在庫", "Stock"));
var naserch =
namesserch.Where(
item => item.Japanese.Contains("在庫"));
Console.WriteLine(naserch.ToArray());
↑上手く表示されません。
何方か、ご存知の方ご教授お願い致します。
Name の class
class Name
{
public Name(string japanese, string english)
{
Japanese = japanese;
English = english;
}
public string Japanese { get; }
public string English { get; }
}