简体   繁体   English

将字符串数据数组转换为列表

[英]convert string data array to list

i have an string data array which contains data like this 我有一个包含这样的数据的字符串数据数组

5~kiran
2~ram
1~arun
6~rohan

now a method returns an value like string [] data 现在一个方法返回一个值,例如字符串[]数据

 public string [] names()
    {
        return data.Toarray()
    }

    public class Person 
    { 
        public string Name { get; set; } 
        public int Age { get; set; } 
    }



 List<Person> persons = new List<Person>(); 
    string [] names = names();

now i need to copy all the data from an string array to an list and finally bind to grid view 现在我需要将所有数据从字符串数组复制到列表,最后绑定到网格视图

gridview.datasoutrce= persons

how can i do it. 我该怎么做。 is there any built in method to do it 有没有内置的方法来做到这一点

thanks in advance 提前致谢

prince 王子

Something like this: 像这样:

var persons = (from n in names()
               let s = n.split('~')
               select new Person { Name=s[1], Age=int.Parse(s[0]) }
              ).ToList();
var persons = names.Select(n => n.Split('~'))
                   .Select(a => new Person { Age=int.Parse(a[0]), Name=a[1] })
                   .ToList();

Assuming that the source data are completely valid (ie no negative ages, names do not contain '~', every line has both age and name, and so on), here's a very easy implementation: 假设源数据是完全有效的(即没有负数年龄,名称不包含“〜”,每一行都具有年龄和名称,依此类推),这是一个非常简单的实现:

List<Person> persons = new List<Person>;

foreach (var s in names()) {
    var split = s.Split('~');
    int age = int.Parse (split[0]);
    string name = split[1];
    var p = new Person() { Age = age, Name = name };
    persons.Add (p);
}

You can also use a Linq query, which is shorter. 您还可以使用较短的Linq查询。 See Marcelo's Answer for an example. 有关示例,请参见Marcelo的答案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM