Как преобразовать это выражение Linq в лямбда-выражение (представляем онлайн-конвертер)

Знаете ли вы какое-либо программное обеспечение, онлайн-веб-приложение или инструмент в Visual Studio, который может выполнить это преобразование?

И пожалуйста, помогите мне кто-нибудь, я не могу преобразовать этот комплекс (в Linq Like This: From x в UserRoleid Выберите x... Где...)

        var Result = userRoleIds.Select(s => (s.UserId, actionFullNames.Select(actionFullName 
          => (actionFullName, permissions.Any(A => s.RoleIds.Contains(A.RoleId) && 
          A.ActionFullName.Equals(actionFullName, StringComparison.OrdinalIgnoreCase))))
         .ToArray())).ToArray();

Например :

context.table.Where(a => a.FK.ID == b.Number).Sum(a => a.sumPrice)
=====To=This=====>
(from a in context.table where a.FK.ID == b.Number select a.sumPrice).Sum()

Если предположить, что userRoleIds — это какой-то IEnumerable, использование .Select() уже является вызовом Linq. Так что же во что нужно преобразовать (и почему)? Пожалуйста, будьте более конкретны.

Peter B 17.05.2024 22:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
60
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не знаю ни одного инструмента для этого. Кроме того, поскольку вы не указали именно модели, я предполагаю, что эти модели у вас есть.

public class UserRole
{
    public int UserRoleId { get; set; }
    public int UserId { get; set; }
    public int[] RoleIds { get; set; }
}

public class Permission
{
    public int RoleId { get; set; }
    public string ActionFullName { get; set; }
}

Тогда ваш синтатический сахар будет выглядеть так:

var result = (from userRole in userRoles
              select new
              {
                  userRole.UserId,
                  SomeTuple = (from actionFullName in actionFullNames
                               select new
                               {
                                   ActionFullName = actionFullName,
                                   IsMatched = (from permission in permissions
                                              where userRole.RoleIds.Contains(permission.RoleId) &&
                                                    permission.ActionFullName.Equals(actionFullName,
                                                        StringComparison.OrdinalIgnoreCase)
                                              select permission).Any()
                               }).ToArray()
              }).ToArray();

Этот стиль не поддерживает все методы linq (например, Any()).

Я не верю, что вы даже правильно упомянули членов класса :)))) Спасибо.

YaSecu 18.05.2024 00:27

Другие вопросы по теме

Общее выражение для поиска частичных совпадений строк с динамическим списком полей в запросе LINQ
EF Core 8 подсчитывает отношения «многие ко многим», генерирующие неверный запрос
C# Linq объединение двух подтаблиц
Коллекция доступна только для чтения. Исключение с методом EfCore Include
Невозможно привести List<T> к классу, производному от List<T>
Как получить индекс повторяющихся элементов вместе с диапазоном пустых элементов после него. ЛИНК
Чтение вложенного XML из файла и использование классов для хранения информации
Чтение XML в формат LINQ для проверки данных файла журнала. Условия в формате списка. linq не получает преобразованный XML
Могу ли я настроить автоматическое выполнение асинхронной операции после завершения другой асинхронной операции?
Как решить исключение «Неожиданный источник запроса: присоединиться к ICacheEntry в CacheQueryable» при выполнении левого соединения с использованием linq в Apache Ignite?