Примерно так:
val ranges = List((1, 4), (5, 8), (9, 10))
val nums = List(2, 2, 3, 7, 8, 9)
val occurences = ranges.map { case (l, r) => nums.count((l to r) contains _) }
val map = (ranges zip occurences).toMap
println(map) // Map((1,4) -> 3, (5,8) -> 2, (9,10) -> 1)
По сути, сначала вычисляется количество вхождений, [3, 2, 1]. Оттуда легко построить карту. И способ вычисления вхождений таков:
nums
содержится в этом диапазоне? РЕДАКТИРОВАТЬ: Не уверен, почему этот ответ получает отрицательный голос, возможно, я как-то неправильно понял вопрос .
Я нашел решение. Вы указываете Систему. Безопасность. Политика. Доказательство Вас выполняющий блок (или тот, который имеет достаточные права) к LocalReport для использования во время выполнения.
reportViewer.LocalReport.ExecuteReportInCurrentAppDomain(System.Reflection.Assembly.GetExecutingAssembly().Evidence);
На всякий случай кто-то натыкается на это как, я сделал при поиске этой Ошибки Разрешения. Я получил эту ошибку с помощью Приложения Windows Forms, потому что клиент связал ярлык на мое Приложение-Exe на его машине с "\COMPUTERNAME\C$\\Application.exe" вместо "C:\Application.exe." - Это вызвало отказ Системы. Безопасность. Разрешение из-за недоверяемого использования интранет.
См. http://www.duelec.de/blog/?p=236 для получения дополнительной информации.
Одна быстрая мысль, хотя это не ошибка, которую я видел, удостоверяется, что Ваш Утверждать, находится в том же методе как код, который устанавливает источник данных ресурсов:
System.Data.SqlClient.SqlClientPermission mPermission = new SqlClientPermission(System.Security.Permissions.PermissionState.Unrestricted);
try
{
mPermission.Assert();
//rest of your code
}
//Handle Exceptions
Разрешение Утверждает, долгое время не бродят вокруг, они могут быть проблемой безопасности, таким образом делая их почти возможный к коду, для которого нужны они, скорее всего, будет работать.