0

First Name _ Last Name で構成される配列があるので、Michael_Jordan Javier_Lopez George_Jones のように読みます。

これらのそれぞれを反復処理するためのループ設定がありますが、" " の後にあるものだけを取得したいです。問題は、配列がグローバルに宣言されており、変更する必要がある多くの場所で宣言されていることです。 . .Split 関数を使用しようとすると、System.Array に分割の定義が含まれていないというエラーが表示されます。配列内の" " の後にデータを取得する別のオプションは何ですか?

public static string GetEmployees()
{
    string queryString = "select employeeName from tbl_GlobalEmployeeData where state = 'AL';
    SqlConnection connection = new SqlConnection(Connection.MyConnectionString.ConnectionStrings[0]);
    {
        SqlCommand cmd = new SqlCommand(queryString, connection);
        connection.Open();
        List<string> tempList = new List<string>();
        SqlDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            try
            {
                if (!reader.IsDBNull(0))
                {
                    tempList.Add(reader[0].ToString() + "_" + reader[1].ToString());
                }
            }
            catch
            {
                if (!reader.IsDBNull(0))
                {
                    tempList.Add(reader[0].ToString() + "_" + reader[1].ToString());
                }
            }
        }
        reader.Close();
        AllCompanyEmployees.State.ThisStore = tempList.ToArray();
        for (int q = AllCompanyEmployees.State.ThisStore.GetLowerBound(0); q <= AllCompanyEmployees.State.ThisStore.GetUpperBound(0); q++)
        {
            return AllCompanyEmployees.State.ThisStore[q];
        }
        return null;
    }
}

}

for (int q = AllCompanyEmployees.State.ThisStore.GetLowerBound(0); q <= AllCompanyEmployees.State.ThisStore.GetUpperBound(0); q++)
{
   //This line is where I get the error mentioned above
   string lastName = AllCompanyEmployees.State.ThisStore.Split('_')[1];
}
4

2 に答える 2

0

文字列にのみ使用できSplitます。したがって、次のようなことができます。

List<string> lastNames = new List<string>();
for (int q = AllCompanyEmployees.State.ThisStore.GetLowerBound(0); q <= AllCompanyEmployees.State.ThisStore.GetUpperBound(0); q++)
{
   string lastName = AllCompanyEmployees.State.ThisStore[q].Split('_')[1];
   lastNames.Add(lastName);
}

最後List<string>に、従業員のすべての姓を含む があります。これで、仕事を続けることができます。

于 2013-10-29T14:14:47.893 に答える
0

あなたの質問は「配列を分割したい - たとえば、Javier_Lopez を読み取り、配列から Lopez を取得したい」だと思います。

非常に簡単:

string last = yourString.Split(new char[] { '_' })[1];

繰り返しますが、配列でこれを使用しているように見えるため、そのエラーが発生しています。配列を反復処理し、配列内の個々の文字列に対してこれを行う必要があります。

編集:配列を変更して姓のみを残すには、これを試してください:

int i = 0;
foreach (string s in stringArray)
{
    stringArray[i] = stringArray[i].Split(new char[] { '_' })[1];
    i++;
}
于 2013-10-29T14:11:06.243 に答える