如果我有以下
public class Segment
{
private string sale;
private IEnumerable<string> offers;
// Properties for these
// ctor
这是示例数据
var segment1 = new Segment("USD" new List<string>{"USD","ANZ"});
var segment2 = new Segment1("GBP" new List<string>{"USD","ANZ"});
var segments = new List<Segment>{ segment1, segment2};
我想获得一个细分过滤器列表,其中任何在销售中具有相同价值的细分受到删除
我该怎么做?
这是我到目前为止所做的但是类型不正确
var _filtered = segments.Select(
segment =>
segment.Offers.Where(offer => offer != segment.Sale));
结果应为
细分列表
列表将是:
//注意美元已删除
segment1 =&#34; USD&#34;,{&#34; ANZ&#34;}
segment2 =&#34; GBP&#34;,{&#34; USD&#34;,&#34; ANZ&#34;}
答案 0 :(得分:0)
我没有经过测试,但是:
var _filtered = segments.Select(x =>
new Segment(x.Sale, x.Offers.Where(y => !y.Contains(x.Sale)))).ToList();
在这里小提琴:https://dotnetfiddle.net/rWOCZi
结果:
USD - &gt; ANZ
GBP - &gt; USD,ANZ
答案 1 :(得分:0)
如果我理解你,你需要以下内容:
var _filtered = segments.Select(
segment => new Segment(segment.Sale, segment.Offers.Where(o => o != segment.Sale).ToList());