如何将List <long?>转换为ISet <long>

时间:2019-02-14 12:02:37

标签: c#

有一种方法正在接受类型为List<long?>的参数,我需要将其分配给类型为ISet<long>的someTestModel id。

public void testM1(List<long?> testIds)
{
    var request = new someTestModel { ids= testIds };
}

1 个答案:

答案 0 :(得分:8)

这里我们需要两件事:

  • 要实现ISet<T>的具体类型-大概HashSet<T>就足够了
  • long?更改为long-大概是忽略了null的任何内容

所以,像这样:

var hash = new HashSet<long>();
foreach(var id in testIds) {
    if(id.HasValue) hash.Add(id.Value);
}
var request = new someTestModel{ ids = hash};