我有2个元组
List<Tuple<string, string, double>> _AllBatchList = new List<Tuple<string, string, double>>();
List<Tuple<string, string, double>> _tmpBatchList = null;
以这种方式添加数据
for (int row = 0; row < b1MatrixItemD.RowCount; row++)
{
string _WtmpBatchNo = ((EditText)b1MatrixItemD.Columns.Item("Col_0").Cells.Item(row + 1).Specific).Value;
string _WtmpItemNo = ((EditText)b1MatrixItemD.Columns.Item("Col_1").Cells.Item(row + 1).Specific).Value;
double _WtmpTotalQty = 0;
double.TryParse(((EditText)b1MatrixItemD.Columns.Item("Col_5").Cells.Item(row + 1).Specific).Value, out _WtmpTotalQty);
_AllBatchList.Add(new Tuple<string, string, double>(_WtmpBatchNo, _WtmpItemNo, _WtmpTotalQty));
}
我要过滤数据并分配相同类型的元组类型
_tmpBatchList = _AllBatchList.Find(t => t.Item2 == _WtmpItemNo);
并遍历元组
foreach (var item in _tmpBatchList)
{
doc.Lines.BatchNumbers.BatchNumber = item.Item1;
doc.Lines.BatchNumbers.Quantity = double.Parse(_WtmpTotalQty);
doc.Lines.BatchNumbers.Add();
}
但是此行会产生以上错误
_tmpBatchList = _AllBatchList.Find(t => t.Item2 == _WtmpItemNo)
需要解决此问题的建议
答案 0 :(得分:1)
在这种情况下,Find()
方法将返回类型为Tuple<string, string, double>
的对象。
您正在尝试将其分配给类型为List<Tuple<string, string, double>>
的变量,因此会出现错误。
尝试将找到的对象分配给变量:
var obj = _AllBatchList.Find(t => t.Item2 == _WtmpItemNo);
如果您要查找满足此条件的所有物品,请改用Where
方法:
_tmpBatchList = _AllBatchList.Where(t => t.Item2 == _WtmpItemNo);