如何将Long []转换为IEnumerable <long?>

max*_*pan 0 c#

我有一个例外

无法将类型'long []'隐式转换为'System.Collections.Generic.IEnumerable <long?>'

我该如何解决这个问题?

我已经尝试过了,但是没有用。

AssignedPlayerSites是IList属性。

IEnumerable<long?> multipleSelectedSites = cmsUser.AssignedPlayerSites.Select(ps => ps.Id).AsEnumerable<long?>();
Run Code Online (Sandbox Code Playgroud)

Tim*_* S. 6

问题是您不能IEnumerable<long>IEnumerable<long?>这种方式从转换为。您可以使用Enumerable.Cast扩展方法来执行此操作,例如:

var longArray = new long[] { 1, 2, 3 };
IEnumerable<long?> nullableLongEnumerable = longArray.Cast<long?>();

IEnumerable<long?> multipleSelectedSites =
      cmsUser.AssignedPlayerSites.Select(ps => ps.Id).Cast<long?>();
Run Code Online (Sandbox Code Playgroud)

但是,根据您要执行的操作,这可能更有意义:

IEnumerable<long> multipleSelectedSites = cmsUser.AssignedPlayerSites.Select(ps => ps.Id);
Run Code Online (Sandbox Code Playgroud)