我有以下 LINQ 查询。 FactColumns
是 FactColumn
对象列表,SelectedColumns
是字符串列表。我想在 SelectedColumns
上使用内部联接来获取 FactColumn
对象的列表。但是,对于以下查询,我得到了 null
。
var lst = from fc in this.DataSetFact.FactColumns
join column in m_TableDataDict[tableGuid].SelectedColumns
on fc.Name equals column
select new
{
fc.ColumnType,
fc.DataType,
fc.FriendlyName,
fc.Name,
fc.ParentFactName,
fc.Size,
fc.State
};
为什么我得到的是 null
?
最佳答案
我可以看到上面的代码运行良好。检查数据是否正确加载。
示例
List<FactColumn> FactColumns = new List<FactColumn>();
List<string> SelectedColumns = new List<string>();
private void Form2_Load(object sender, EventArgs e)
{
FactColumns.Add(new FactColumn() { DataType = "int", Name = "int" });
FactColumns.Add(new FactColumn() { DataType = "string", Name = "string" });
SelectedColumns.Add("string");
var lst = from fc in this.FactColumns join column in SelectedColumns on fc.Name equals column select new { fc.DataType, fc.Name};
foreach (var column in lst)
{
MessageBox.Show(column.Name);
}
}
public class FactColumn
{
public string DataType { get; set; }
public string Name { get; set; }
}
使用 lambda 怎么样:
var lst = this.DataSetFact.FactColumns.Where(hm=>hm_TableDataDict[tableGuid].SelectedColumns.Contains(hm.Name)
关于c# - 我的内部连接有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919762/