从集合中提取符合条件的记录
List<string> invoiceNoList = new List<string>();foreach (InvoiceAccountGoodsGather_Detail detail in Dmo.GoodsGatherDetails)
{
if (invoiceNoList.IndexOf(detail.Invoice_NO) == -1)
{
invoiceNoList.Add(detail.Invoice_NO);
}
}
现在需要将过滤条件从一个(Invoice_No),添加到多个(3个),这三个都是detail已经有的属性(LoadTime,ArriveTime,AccountingUnit_ID).
--------------------编程问答-------------------- private void FillInvoiceNoList(List<BigBuyerPreOrder_Detail> list)
{
if (Dmo.GoodsDetails.Count == 0)
{
throw new ApplicationException("没有内容可供创建订单!");
}
list.Add(Dmo.GoodsDetails[0]);
foreach (BigBuyerPreOrder_Detail detail in Dmo.GoodsDetails)
{
int i = 0;
int biao = 0;
if (list.Count > 0)
{
for (int j = 0; j < list.Count; j++)//如果集合不为空,看里面是否存在当前记录
{
if (detail.AccountingUnit_ID == list[j].AccountingUnit_ID && detail.LoadTime == list[j].LoadTime && detail.ArriveTime == list[j].ArriveTime)
{
biao = 1;
}
}
}
//如果当前记录在集合中,不重复(符合条件),将它们加入集合中 (有可能出现,123,213,123,213,这时就要过滤)
if (detail.AccountingUnit_ID != list[i].AccountingUnit_ID || detail.LoadTime != list[i].LoadTime || detail.ArriveTime != list[i].ArriveTime)
{
if (biao == 0) //过滤掉有可能的重复项
{
list.Add(detail);
i++;
}
}
}
} --------------------编程问答-------------------- --------------------编程问答-------------------- 用dictionary,把那三个字段LoadTime,ArriveTime,AccountingUnit_ID组成一个字符串作为一个Key,detail对象作为Value保存进去,检查是否存在时,detail是否存在时,不需要循环,只需要先根据当前detail生成一个key,然后使用这个key直接检查dictionary就可以了。 --------------------编程问答-------------------- 帮你顶,顺便打一个 c#交流群广告59714431
补充:.NET技术 , C#