2

2 つのテーブルを比較するために、次のコードを作成しました。

var one = db.arabia_upod_item_availability_masters.Where(i => i.locationId == 30).OrderBy(i => i.itemNo).ToList();
var two = db.vw_get_arabia_upod_report_quantityOrderedPerItem_uhjs.OrderBy(i => i.Item_No).ToList();

if (one.Zip(two, (j, k) => j.itemNo == k.Item_No).Any(m => !m))
returnValue = true;
else
returnValue = false;

問題は、Zip メソッドが最初から最後にループし、次に最初にループすることです。たとえば、アイテム番号が 1,2,3 の場合、1,2,3 を通過し、さらに 1 を通過し、すべての値が一致しても false を返します。何が問題になる可能性がありますか? 私を助けてください。

4

2 に答える 2

2

Zipは結合演算子です。リスト内の同じ位置にあるOnefrom のアイテムと from のアイテムを結合します。フィルターに合わせて結合することを期待しているようです。Two

于 2012-07-11T12:11:55.230 に答える
0

Zipは、2 つのシーケンスの特定の要素に関数を適用し、結果のシーケンスを生成します。Intersect演算子を使用して、2 つのシーケンスの交差を返すことができます

var q = one.Intersect(two)
于 2012-07-11T12:26:22.253 に答える