1

ASP.NET MVC 3アプリケーションを構築しています。ここでは、このモデルに従ってカスタムオブジェクトのリストがあります。

public class AbnAmroTransaction
{
    public int TransactionId { get; set; }
    public int AccountNumber { get; set; }
    public string Currency { get; set; }
    public int TransactionDate { get; set; }
    public int InterestDate { get; set; }
    public decimal StartBalance { get; set; }
    public decimal EndBalance { get; set; }
    public decimal Amount { get; set; }
    public string Description { get; set; }
    public int CategoryId { get; set; }
}

また、カスタムオブジェクトタイプ「トランザクション」(DBMLを使用してSQL Server 2008データベースから取得)のわずかに類似したオブジェクトを含む2番目のリストがあります。

Transaction LinqToSql Object

int TransactionId
int ImportId
int CategoryId
DateTime DateTime
Nvarchar(MAX) Currency
Money Amount
Nvarchar(MAX) Description

すべてのAbnAmroTransactionsを含む3番目のリストを作成しようとしています。ここで、AbnAmroTransaction.TransactionIdはトランザクションリスト(TransactionId)にありません。両方のリストをループすることなくこれを行うにはどうすればよいですか?これは非常に非効率的な方法のようです。

私はこの記事を見つけました:http: //msdn.microsoft.com/en-us/library/system.collections.iequalitycomparer.equals.aspx しかし、それは同じタイプのオブジェクトにのみ当てはまるようです。

4

1 に答える 1

3

linqを使用している場合は、Exceptを参照してください。

var list1 = new List<int>() {1,2,3,4,5};
var list2 = new List<int>() {4,5,6,7};
var newList = list1.Except(list2);

新しいリストには{4,5}が含まれます

ただし、最初にトランザクションIDを確認する必要があります。

于 2012-05-22T22:08:35.747 に答える