を使用して、両方の属性に一致するすべてのIndividualRefを取得する必要があります。すべての属性をORではなくANDを使用して取得する必要があります。たとえば、以下のコードは、私が "ST"と "BJOG"に一致すると個別のref 22を取得する必要がありますC#LINQ
これを行うLINQステートメントをご存知ですか?
string AttributeList = "ST,BJOG,";
List<StratogIndividuals> inds = new List<StratogIndividuals>();
StratogIndividuals s = new StratogIndividuals();
string[] attributes = AttributeList.Split(',').Where(x => x != "").ToArray();
s.AttributeCode = "ST";
s.IndividualRef = "22";
inds.Add(s);
s = new StratogIndividuals();
s.AttributeCode = "BJOG";
s.IndividualRef = "22";
inds.Add(s);
s = new StratogIndividuals();
s.AttributeCode = "BJOG";
s.IndividualRef = "20";
inds.Add(s);
s = new StratogIndividuals();
s.AttributeCode = "XXF";
s.IndividualRef = "21";
inds.Add(s);
もちろん、AttributeListのサイズは大きくなります。 ありがとう
'inds.GroupBy(IND => ind.IndividualRef).Where(G =>新しいHashSetの(g.Select(IND => ind.AttributeCode))。SetEquals(新しい[] { "BJOG" (g => g.Key) ' –
spender
GroupByを使用します。inds.GroupBy(x => new {attr = x.AttributeCode、ref = x.INdividual}) – jdweng