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

时间:2010-05-11 11:40:50

标签: c# asp.net

我有一个字符串数据数组,其中包含这样的数据

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

现在一个方法返回一个像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();

现在我需要将字符串数组中的所有数据复制到列表中 最后绑定到网格视图

gridview.datasoutrce= persons

我该怎么做。有没有内置的方法来做到这一点

提前致谢

王子

3 个答案:

答案 0 :(得分:6)

这样的事情:

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

假设源数据完全有效(即没有负数年龄,名称不包含'〜',每行都有年龄和名称,等等),这是一个非常简单的实现:

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);
}

您还可以使用更短的Linq查询。请参阅马塞洛的答案。