如何从列表字符串中获取值?

时间:2014-08-25 06:00:22

标签: c# jquery

字符串列表的返回结果是:

var result= "1,red,2,blue,3,green,4,orange";

我想使用循环并获得1,2,3,4red,blue,green,orange

等结果

我的代码如下。 我得到了错误的分裂。 对象不支持split()。 我正在使用jquery 1.10.1。

$.ajax({
                        type: "GET",
                        url: "/_vti_bin/userService/myservice.svc/GetUserListForMentionSign?query" + query,
                        async: false,
                        dataType: "JSON",
                        cache: false,
                        processdata: true,
                        success: function (result) {
                            data = result;
                            //arrary
                            var resultArray = data.Split(',');

                            var id = new Array(), name = new Array();

                            $.each(resultArray, function (index, value) {
                                if (isNaN(value)) {
                                    name.push(value);
                                    alert(name.push(value));
                                }
                                else {
                                    id.push(value);
                                }
                            });

以下是c#的网络服务。

public List<string> GetUserListForMentionSign(string username)
    {
        List<User> UserList = new List<User>();
        List<string> returnvalue=new List<string>();
        try
        {
            string returnstring = string.Empty;
            DataTable dt = null;
            dt = Library.Helper.FindUser(username, 200);
            foreach (DataRow dr in dt.Rows)
            {
                if (dr["Title"].ToString() != "Person.aspx")  // those user without the name
                {
                    User user = new User();
                   user.id = dr["ID"].ToString();
                    user.name = dr["Name"].ToString();

                    UserList.Add(spuser);
                }
            }
        }
catch (Exception ex)
        {

        }
          return UserList.Select(a=>new[]{ a.name.ToString(),a.id.ToString()}).SelectMany(a=>a).ToList();
    }

5 个答案:

答案 0 :(得分:1)

尝试此操作:使用.split()将字符串转换为数组,然后迭代数组。内部循环检查value是否为未使用isNaN()的数量并将值推送到相应的数组。

    var result= "1,red,2,blue,3,green,4,orange";

    var resultArray = result.split(",");

    var numberArray = new Array(), colorArray = new Array();

    $.each(resultArray , function( index, value ) {
       if(isNaN(value))
         colorArray.push(value);
      else
         numberArray.push(value);
    });

   alert(colorArray.toString());
   alert(numberArray.toString());

答案 1 :(得分:1)

您可以使用jQuery map函数创建包含偶数和奇数索引值的2个不同数组并对其进行操作

var result = "1,red,2,blue,3,green,4,orange";
var arr=result.split(',');
var odd = jQuery.map( arr, function(n,i){
return i%2 ? n : null;
});

var even = jQuery.map( arr, function(n,i){
return i%2 ? null : n;
});

答案 2 :(得分:1)

var result= "1,red,2,blue,3,green,4,orange";

string[] arr = result.Split(',');  

int[] num;

string[] text;

foreach(var i in arr)
{
    int cont;

     if (int.TryParse(i, out cont) == false)
       text[] = i;
     else
       num[] = cont;
}

或手动循环

  for(int i = 0; i < arr.lenght; i++)
   {
      int cont;

         if (int.TryParse(arr[i], out cont) == false)
           text[i] = i;
         else
           num[i] = cont;
   }

注意:从服务器端拆分C#。

答案 3 :(得分:1)

    var result = "1,red,2,blue,3,green,4,orange";
    var splitValue = result.split(",");
    var num = [];
    var str = [];
     for (var i in splitValue) {
       if (i % 2 === 0) {
            num.push(splitValue[i]);
         } else {
            str.push(splitValue[i]);
        }
     }

    console.log(num);
    console.log(str);

答案 4 :(得分:1)

在C语言中我实现了这样的。 逻辑:解析输入以分割数字和字符串并存储到不同的数组。最后打印结果数组。

int main()
{
    char  *str, result []= "1,red,2,blue,3,green,4,orange";
    char *p, *p1;
    char num[10], i=0;
    char name[10][15], j=0,k;

    str =result;

    while (1)
    {
        p= strchr (str, ',');
            if(!p1)
            break;

        num [i]=atoi (p-1) ;
        i++;

        p1= strchr (p+1, ',');

        if(!p1){
            strcpy ( name[j],  p+1);
            j++;
            break;
        }

        p1[0]='\0';
        strcpy ( name[j],  p+1);
        j++;
       str=p1+1;
    }


    for (k=0; k<i; ++k){
            printf ( "%d ", num[k]);
    }

    printf ("\n");

    for (k=0; k<j; ++k){
            printf ( "%s ", name[k]);

    }

    printf ("\n");

}