我有两个从数据表转换而来的数组。
我需要在某个条件下加入这两个数组,然后将最终结果数据绑定到ListView。
第一个数组只有一列,第二个数组有几列。我需要加入它们,其中searchResults上的列txtItemA等于queryResults列上的txtItemNumber。
即使我走在正确的轨道上,我也不确定。 Visual Studio在此行的搜索结果下显示红线....
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
}));
我仍然无法让这个工作..
行中项目的错误.....选择(item =&gt; new {
参数或局部变量不能与方法类型参数
同名和txtItemA
string确实包含txtItemA的定义,没有扩展方法....
答案 0 :(得分:0)
尝试以下操作,它使用标准DataRows,我猜测基于示例代码的字段名称。
DataTable dt2 = new DataTable();
var showResults = dt2.Rows.Cast<DataRow>().Join(dt2.Rows.Cast<DataRow>(), a => a.Field<string>("txtItemNumber"), b => b.Field<string>("txtItemA"), (a, b) => new
{
newseries = a.Field<string>("newseries"),
series = a.Field<string>("series")
});
ListView1.DataSource = showResults.ToArray();
ListView1.DataBind();