2009-04-05 4 views
0

私はいくつかの情報のためsearcingた、と私はこのような方法が見つかりました:どのようにしてクラスを配列にすることができますか?

public partial class Customer {   
    private string customerIDField; 

    private string companyNameField; 

    private string contactNameField; 

    private string contactTitleField; 

    private string addressField; 

    private string cityField; 

    private string regionField; 

    private string postalCodeField; 

    private string countryField; 

    private string phoneField; 

    private string faxField; 
    // Other properties 
} 

はその後コーダは、このように、このクラスを使用していました。どうやって?

private static Model.Customer[] BuildCustomers(SqlDataReader reader) 
{ 
    if (reader.HasRows) 
    { 
     List<Model.Customer> custs = new List<Model.Customer>(); 
     while (reader.Read()) 
     { 
      Model.Customer cust = new Model.Customer(); 
      cust.CustomerID = reader["CustomerID"].ToString(); 
      cust.CompanyName = reader["CompanyName"].ToString(); 
      cust.ContactName = reader["ContactName"].ToString(); 
      custs.Add(cust); 
     } 
     return custs.ToArray(); 
    } 
    return null; 
} 

私は本当にこのコーダーが "Customer -----> Model.Customer []"をどのように使用しているかを知りたいと思っています。これを行う方法はありますか?

答えて

2

Customerオブジェクトを配列に変換する方法を尋ねていますか?

それを行うにはいくつかの方法があります - あなたは配列にListを変換し、その後、Customersを追加することにより、Listを築いコードの2番目の部分に示した例では。これは、あなたが何人の顧客を所有しているかわからず、リストに追加し続け、最後に作成して配列すると、配列が正しいサイズになる場合にうまく機能します。

あなただけの1つのcustomerオブジェクトを持っている場合は、アレイ1つの要素と呼ばれるcustomersを作成し、このようにそれにcustomerオブジェクトを追加することができます。

Model.Customer[] customers = new Model.Customer[1]; 
customers[0] = customer; 

、さらに短い道か:

Model.Customer[] customers = new Model.Customer[] {customer}; 
1

メソッドが配列を返す方法について混乱がありますか?

これはちょうどList<T>.ToArray()を使用しています。このリストは、一度に1人の顧客から構成され、最後にToArray()が呼び出されます。

0

ここであなたがしたいことはわかりません。

お客様のアレイをお探しですか?または、配列型の構文を使用してCustomerクラスのプロパティにアクセスしたいですか?

のコードサンプルを通過する(第二1)

コードは顧客のリストを作成し、

は、アクセスを許可するのDataReaderを経由して移入され、単一の顧客(これは、データベースのデータをrepersentsを作成しますその列のインデックスまたは名前を経由して)

新しいcusomterが最終的にリストが、それは顧客への変換をサポートしています(ジェネリック(そのリストのような)配列に変換され、顧客

のリストに追加され、[]ウィット鋳造の必要性を排除する)。ジェイソンと同様

HTH ボーンズ

1

は、あなただけのリスト<Model.Customer>からModel.Customersの配列を返すしている、と言います。配列のようなクラスにアクセスすることは可能です。それはインデクサーを使うことです。例えば

Foo foo = new Foo(); 
string s = foo[0]; 

明らかにあなたはfooは、インデックスに応じて、いくつかの値を返すようにするために何かをしたいだろうが、それは基本的な方法です:

class Foo 
{ 
    public string this [int index] 
    { 
      get { return new string; } 
    } 
} 

は、これは、このように使用されますそれをするために。

+0

スポットの回答はありますか?あなたの解決策は私にアイデアを与えますが、正確にはありません。 – Penguen

+0

私はあなたの質問を理解していません。 「スポット回答」とはどういう意味ですか? –

関連する問題