using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
DataTable dt = AddUserInfo();
IEnumerable<UserInfo> i = GetUserInfoByYield(dt);
foreach (var ii in i)
{
Console.WriteLine(ii.Name + ii.Age + ii.Address);
}
List<UserInfo> u = GetUserInfoByList(dt);
foreach (var ii in i)
{
Console.WriteLine(ii.Name + ii.Age + ii.Address);
}
Console.Read();
}
public static DataTable AddUserInfo()
{
DataTable userInfo = new DataTable("UserInfo");
DataColumn Name = new DataColumn("Name");
DataColumn Age = new DataColumn("Age");
DataColumn Address = new DataColumn("Address");
userInfo.Columns.Add(Name);
userInfo.Columns.Add(Age);
userInfo.Columns.Add(Address);
DataRow dr = userInfo.NewRow();
dr["Name"] = "Sunny";
dr["Age"] = 24;
dr["Address"] = "a";
userInfo.Rows.Add(dr);
dr = userInfo.NewRow();
dr["Name"] = "Cary";
dr["Age"] = 25;
dr["Address"] = "b";
userInfo.Rows.Add(dr);
return userInfo;
}
public static IEnumerable<UserInfo> GetUserInfoByYield(DataTable dt)
{
if (dt != null)
{
UserInfo u = new UserInfo();
foreach (DataRow aa in dt.Rows)
{
u.Name = aa["Name"].ToString();
u.Address = aa["Address"].ToString();
u.Age = Convert.ToInt16(aa["Age"]);
yield return u;
}
}
}
public static List<UserInfo> GetUserInfoByList(DataTable dt)
{
List<UserInfo> userInfo = new List<UserInfo>();
foreach (DataRow u in dt.Rows)
{
UserInfo uu = new UserInfo();
uu.Name = u["Name"].ToString();
uu.Address = u["Address"].ToString();
uu.Age = Convert.ToInt16(u["Age"]);
userInfo.Add(uu);
}
return userInfo;
}
}
}