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

我认为您的问题是“我想拆分数组 - 例如它读取 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 回答
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 回答