如果有以下克拉森具有相同的接口選擇一個集合
public interface ISomething { int Id { get; set; } }
public class SomethingA : ISomething {...}
public class SomethingB : ISomething {...}
在另一類我有以下兩個列表:
List<SomethingA> aValues;
List<SomethingB> bValues;
我的問題是,如果有可能做這樣的事情:
public List<ISomething> GetList(bool select) {
return select ? aValues : bValues;
}
我的目標就是用這個,因爲這:
GetList(true).Single(x => x.Id) // or
foreach (var value in GetList(false))
{
value.Id = 18;
}
// anything else
更新: 我看,有很好的可能性。但是,還有一種方法可以實現以下目標嗎?
GetList(true).Remove(myValue);
請注意downvote的一些解釋?我測試過,並且工作。 – 2014-08-27 14:21:20
謝謝,我的+1。對於我的大多數情況來說,這似乎是最簡單的解決方案。 – Matt 2014-08-27 14:25:50
爲什麼你不能返回列表? (並且我不是downvoter :)) –
DaniCE
2014-08-27 14:26:22