【发布时间】:2017-08-17 07:04:03
【问题描述】:
我有两个从数据表转换而来的数组。
我需要在一个条件下加入两个数组,然后将最终结果数据绑定到一个 ListView。
第一个数组只有一列,第二个有几列。我需要加入它们,其中 searchResults 上的 txtItemA 列等于 queryResults 列上的 txtItemNumber 。
即使我在正确的轨道上,我也不确定。 Visual Studio 在此行的 searchresults 下显示一条红线....
var showResults = from a in searchResults
我的代码...
ArrayList searchResults = new ArrayList();
foreach (DataRow dataRow in dt2.Rows)
searchResults.Add(string.Join(";", dataRow.ItemArray.Select(item => item.ToString())));
ArrayList queryResults = new ArrayList();
foreach (DataRow dataRow in dt2.Rows)
queryResults.Add(string.Join(";", dataRow.ItemArray.Select(item => item.ToString())));
var showResults = from a in searchResults
join b in queryResults on b.txtItemNumber equals a.txtItemA
select new
{
newseries = searchResults.newseries,
series = searchResults.series
};
ListView1.DataSource = showResults.ToArray();
ListView1.DataBind();
我尝试使用 Gilad Green 的这段代码...
List<string> searchResults = new List<string>();
foreach (DataRow dataRow in dt2.Rows)
searchResults.Add(string.Join(";", dataRow.ItemArray.Select(item => item.ToString())));
List<string> queryResults = new List<string>();
foreach (DataRow dataRow in dt2.Rows)
queryResults.Add(string.Join(";", dataRow.ItemArray.Select(item => item.ToString())));
var showResults = searchResults.Where(item => queryResults.Contains(item.txtItemA)
.Select(item => new {
newseries = item.newseries,
series = item.series
}));
我仍然无法让它工作..
行中的项目错误.....Select(item => new {
参数或局部变量不能与方法类型参数同名
和txtItemA
字符串确实包含 txtItemA 的定义并且没有扩展方法....
【问题讨论】:
-
当
b和a都是字符串时,你如何加入b.txtItemNumber equals a.txtItemA? -
您使用的是类型化数据行吗?如果可以,您可以发布一个示例吗?