我有一个字符串数据数组,其中包含这样的数据
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
我该怎么做。有没有内置的方法来做到这一点
提前致谢
王子
答案 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查询。请参阅马塞洛的答案。