C# 请告诉我如何加载列表<;数据集>;要列出的第一个数据集值的数量<;人>;
我正在尝试将值从C# 请告诉我如何加载列表<;数据集>;要列出的第一个数据集值的数量<;人>;,c#,asp.net,generics,C#,Asp.net,Generics,我正在尝试将值从列表加载到列表 我已经编写了以下代码,但不确定下一步该怎么做 public List<Person> AddressFinderBLL_GetAddressbyName(String pfname,) { List<Person> Per= new List<Person>(); List<DataSet> lstPer = new List<DataSet>(); lstPer = Adal
列表
加载到列表
我已经编写了以下代码,但不确定下一步该怎么做
public List<Person> AddressFinderBLL_GetAddressbyName(String pfname,)
{
List<Person> Per= new List<Person>();
List<DataSet> lstPer = new List<DataSet>();
lstPer = Adal.AddressFinderDAL_GenerateDatabyName(
pfname, pfnameval, plname, plnameval);
//here List<Dataset> lstPer loaded with values from back end foreach(DataRow item in lstPer[0].Tables[0].Rows)
{
// here i need to assign the values to List<Person> from List<Dataset>[0].tables[0].rows;
}
}请让我知道也许(我不知道您表格中的列):
Per=(来自lstPer中的ds)
来自ds.Tables[0]中的行。AsEnumerable()
选择新人员(){
FirstName=行字段(“FirstName”),
MiddleName=行字段(“MiddleName”)
}).ToList();
请注意,您需要使用system.Linq添加,因为上面是一个Linq查询(Linq到数据集)。可能(我不知道表中的列):
Per=(来自lstPer中的ds)
来自ds.Tables[0]中的行。AsEnumerable()
选择新人员(){
FirstName=行字段(“FirstName”),
MiddleName=行字段(“MiddleName”)
}).ToList();
请注意,您需要使用system.Linq添加,因为上面是一个Linq查询(Linq到数据集)。我不知道您的数据集有哪些列名,但这里有一个近似值:
List<Person> pers = lstPer[0].Tables[0].AsEnumerable().
Select(r=> new Person() {
FirstName = r.Field<string>("fieldname1"),
MiddleName = r.Field<string>("fieldname2")
})
.ToList();
List pers=lstPer[0]。表[0]。AsEnumerable()。
选择(r=>newperson(){
FirstName=r.Field(“fieldname1”),
MiddleName=r.Field(“fieldname2”)
})
.ToList();
顺便说一句,返回数据集列表的方法似乎不太可能。你确定那部分是对的吗?可能它返回一个包含多个表的数据集?我不知道您的数据集有哪些列名,但这里有一个近似值:
List<Person> pers = lstPer[0].Tables[0].AsEnumerable().
Select(r=> new Person() {
FirstName = r.Field<string>("fieldname1"),
MiddleName = r.Field<string>("fieldname2")
})
.ToList();
List pers=lstPer[0]。表[0]。AsEnumerable()。
选择(r=>newperson(){
FirstName=r.Field(“fieldname1”),
MiddleName=r.Field(“fieldname2”)
})
.ToList();
顺便说一句,返回数据集列表的方法似乎不太可能。你确定那部分是对的吗?也许它返回一个包含多个表的数据集?全部来自内存,所以YMMV,但我希望它是
public List<Person> AddressFinderBLL_GetAddressbyName(String pfname,)
{
List<Person> Per= new List<Person>();
List<DataSet> lstPer = new List<DataSet>();
lstPer = Adal.AddressFinderDAL_GenerateDatabyName(pfname, pfnameval, plname, plnameval);
//here List<Dataset> lstPer loaded with values from back end
foreach(DataRow item in lstPer[0].Tables[0].Rows)
{
// here i need to assign the values to List<Person> from List<Dataset>[0].tables[0].rows;
var p = new Person();
//it isn't clear what structure item will have. let's assume that it has 2 columns. one is //firstname and the other is last name
p.FirstName = item[0];
p.Middlename = item[1];
Per.Add(p);
}
公共列表地址finderbll\u GetAddressbyName(字符串pfname,)
{
List Per=新列表();
List lstPer=新列表();
lstPer=Adal.AddressFinderDAL_GenerateDatabyName(pfname,pfnameval,plname,plnameval);
//这里列出从后端加载值的lstPer
foreach(lstPer[0]中的DataRow项。表[0]。行)
{
//在这里,我需要将列表[0]中的值分配给列表。表[0]。行;
var p=新人();
//不清楚项将具有什么结构。让我们假设它有两列。一列是//firstname,另一列是last name
p、 FirstName=项目[0];
p、 Middlename=项目[1];
每增加(p);
}
但是根据其他答案,你可以通过阅读LINQ!从记忆中获得更多,所以我希望是这样
public List<Person> AddressFinderBLL_GetAddressbyName(String pfname,)
{
List<Person> Per= new List<Person>();
List<DataSet> lstPer = new List<DataSet>();
lstPer = Adal.AddressFinderDAL_GenerateDatabyName(pfname, pfnameval, plname, plnameval);
//here List<Dataset> lstPer loaded with values from back end
foreach(DataRow item in lstPer[0].Tables[0].Rows)
{
// here i need to assign the values to List<Person> from List<Dataset>[0].tables[0].rows;
var p = new Person();
//it isn't clear what structure item will have. let's assume that it has 2 columns. one is //firstname and the other is last name
p.FirstName = item[0];
p.Middlename = item[1];
Per.Add(p);
}
公共列表地址finderbll\u GetAddressbyName(字符串pfname,)
{
List Per=新列表();
List lstPer=新列表();
lstPer=Adal.AddressFinderDAL_GenerateDatabyName(pfname,pfnameval,plname,plnameval);
//这里列出从后端加载值的lstPer
foreach(lstPer[0]中的DataRow项。表[0]。行)
{
//在这里,我需要将列表[0]中的值分配给列表。表[0]。行;
var p=新人();
//不清楚项将具有什么结构。让我们假设它有两列。一列是//firstname,另一列是last name
p、 FirstName=项目[0];
p、 Middlename=项目[1];
每增加(p);
}
但是根据其他答案,你可以从LINQ周围的一点阅读中获得更多信息!是的,我想知道如何继续是的,我想知道如何继续further@salvaanand:如果希望第一个数据集中第一个表的人员,则此选项正确。如果希望所有数据集中第一个表的人员,则此选项正确。@TimSchmelter注释掉的代码说“需要从列表[0]。表[0]。行中为列表分配值”所以我假设这只是第一个。但是你的假设可能更安全。@AnnL:是的,我后来看到了。但是因为你已经添加了你的答案,我还没有编辑我的答案。所以OP有选择权。@salvaand:如果你想要第一个数据集中第一个表的人,这是正确的。如果你想要第一个选项卡的人,这是正确的“所有数据集中的值都是le。@TimSchmelter注释掉的代码说“需要从列表[0]。表[0]。行中为列表分配值”所以我认为这只是第一个。但是你的假设可能更安全。@AnnL:是的,我后来看到了。但是因为你已经添加了你的答案,我还没有编辑我的答案。所以OP有选择。感谢大家@Paul D'Ambra,Tim schmelter,Ann L的支持,但我无法使用方法AsEnumerable()尽管我包含了名称空间system.Data.DataSetExtensions,但它在paul D'Ambra代码中运行良好感谢所有人@Tim schemelter,Ann L,它现在运行良好,因为我已使用lstper[0]更正了我的错误。表[0]。可计算,但之前我检查了lstper[0]。表[0]。行。可计算()我想告诉大家,所有3个人的代码都很有用,感谢大家@Paul D'Ambra、Tim schmelter、Ann L的支持,但我无法使用方法AsEnumerable()尽管我包含了名称空间system.Data.DataSetExtensions,但它在paul D'Ambra代码中运行良好感谢所有人@Tim schemelter,Ann L,它现在运行良好,因为我已使用lstper[0]更正了我的错误。表[0]。可计算,但之前我检查了lstper[0]。表[0]。行。可计算()我想告诉你所有3个人的代码都很有用