私は 2 つのリストを持っています: 文字列リストと、同じ長さと対応の同じインデックスを持つ二重リストです。すべての文字列を比較し、順序に関係なく同じ文字を含むリストのインデックスを見つけ、両方に対応する最大の double 値を削除する必要があります。
例:
List<string> str= new List<string>();
str.add("efc");
str.add("abc");
str.add("cde");
str.add("cab");
str.add("fbc");
List<double> vlr= new List<double>();
vlr.add(0.1);
vlr.add(0.5);
vlr.add(0.4);
vlr.add(0.2);
vlr.add(0.3);
この場合、"abc" => (0.5) を削除する必要があります。"cab" には同じ文字があり、対応する値が低い =>(0.2) ためです。
この2つの配列のラムダ式はありますか??
私が試したこと:
var distinct = list .Select((str, idx) => new { Str = str, Idx = idx })
.GroupBy(pair => new HashSet<char>(pair.Str), HashSet<char>.CreateSetComparer())
.Select(grp => grp.OrderBy(p => p.Idx).First())
.ToList();