在我的接口中,通常有一個IList<ISomeType>
來表示List類型成員 並且說我期望支持Add
方法的實現。IList在接口中,實現列表
但是在接口的實現,有一個
IList<ISomeType> = new List<ISomeType>()
,每次我用的名單,我要投,例如
(this.MyList as List<IMyType>).AddRange(someType.ToList());
有沒有更好的方式來做到這一點?如何避免這種情況?
- 編輯要求更多的信息 -
取而代之的擴展方法,是有一個小的LINQ表達式來解決呢?
IList<string> list = new List<string>();
var items = new[] { "1", "2", "3" };
items.ToList().ForEach(x => list.Add(x));
但是,這看起來並不像是非常直接的,因爲它反轉了正在做的事情。 (該行動是在要添加的項目上,而不是在列表上)。
有什麼比這更好的?可能的事情可以在列表上完成?
擴展方法是最初的一個選項。但它並沒有解決潛在的問題。我應該真的使用列表而不是當我想說的是:「應該有一個添加方法」? –
IList有一個Add方法 - 它只是沒有AddRange方法 - 如果你想明確它,你可以創建自己的接口,它繼承自IList 並且有你想要的方法,但是你會必須從你的問題中創建你自己的包裝類 - 似乎不值得 - 它看起來像你想爲你自己的代碼方便的AddRange方法,而不是一個庫,因此建議擴展方法。 –