Операторы выбора Linq - где не в

Если вы добавляете рисование к тому же элементу в списке слоев, вы можете применять свойства, такие как android:top, android:bottom, android:left или android:right, для обработки заполнения.

Я исправил свою проблему с несовместимостью рисования с TextView, просто используя свойства android:width и android:height.

например.

<item
    android:width="26dp" android:height="26dp"
    android:drawable="@drawable/ic_person">
    <shape android:shape="rectangle" >
        <solid android:color="@android:color/transparent" />
    </shape>
</item>

6
задан kntcnrg 18 June 2009 в 20:42
поделиться

5 ответов

Я не совсем уверен, какова правильная нотация запроса для этого, но следующий расширенный синтаксис выполнит свою работу

var result = Employees
  .Where( e => !Managers.Where(m => m.EmployeeId == e.EmployeeId).Any())
  .Select( e => new { EmployeeId = e.EmployeeId, EmployeeName = e.FirstName + ' ' + e.LastName);
7
ответ дан 8 December 2019 в 17:26
поделиться

Используя Any :

from e in Employees
where !Managers.Any(m => m.EmployeeID == e.EmployeeID)
select new
{
    e.EmployeeID,
    EmployeeName = e.FirstName + ' ' + e.LastName
}

Или, используя левое соединение:

from e in Employees
join m in Managers on e.EmployeeID equals m.EmployeeID into managerGroup
from m in managerGroup.DefaultIfEmpty()
where m == null
select new
{
    e.EmployeeID,
    EmployeeName = e.FirstName + ' ' + e.LastName
}
4
ответ дан 8 December 2019 в 17:26
поделиться

Вы можете получить желаемый результат с помощью гибкой реализации Linq.Except () :

List<Employee> employees = new List<Employee>
    {
        new Employee { EmployeeID = 1, FirstName = "John", LastName = "Smith" },
        new Employee { EmployeeID = 2, FirstName = "Jane", LastName = "Doe" },
        new Employee { EmployeeID = 3, FirstName = "Eddie", LastName = "Punchclock" }
    };
List<Employee> managers = new List<Employee>
    {
        new Employee { EmployeeID = 2, FirstName = "Jane", LastName = "Doe" },
    };
var nonManagerEmployees = employees.Except(managers, x => x.EmployeeID)
    .Select(x => new
        {
            x.EmployeeID,
            EmployeeName = x.FirstName + " " + x.LastName
        });

foreach(var entry in nonManagerEmployees)
{
    Console.WriteLine(entry.EmployeeID+" "+entry.EmployeeName);
}

output:

1 John Smith
3 Eddie Punchclock
3
ответ дан 8 December 2019 в 17:26
поделиться

Используйте метод .Contains () и вставьте! создание синтаксиса в стиле НЕ.

Это будет {collection} .Contains (this! = to that);

Это может вас тоже заинтересовать: http://srtsolutions.com/blogs/ billwagner / archive / 2006/04/10 / linq-samples-part-11.aspx

0
ответ дан 8 December 2019 в 17:26
поделиться

Вот статья об использовании оператора IN с LINQ. С небольшим количеством смазки для локтей, я уверен, вы могли бы изменить технику, чтобы сделать НЕ ВХОДИТ.

http://blogs.msdn.com/alexj/archive/2009/03/26/tip-8-writing-where -in-style-questions-using-linq-to-entity.aspx

0
ответ дан 8 December 2019 в 17:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: