Если вы добавляете рисование к тому же элементу в списке слоев, вы можете применять свойства, такие как 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>
Я не совсем уверен, какова правильная нотация запроса для этого, но следующий расширенный синтаксис выполнит свою работу
var result = Employees
.Where( e => !Managers.Where(m => m.EmployeeId == e.EmployeeId).Any())
.Select( e => new { EmployeeId = e.EmployeeId, EmployeeName = e.FirstName + ' ' + e.LastName);
Используя 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
}
Вы можете получить желаемый результат с помощью гибкой реализации 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
Используйте метод .Contains () и вставьте! создание синтаксиса в стиле НЕ.
Это будет {collection} .Contains (this! = to that);
Это может вас тоже заинтересовать: http://srtsolutions.com/blogs/ billwagner / archive / 2006/04/10 / linq-samples-part-11.aspx
Вот статья об использовании оператора IN с LINQ. С небольшим количеством смазки для локтей, я уверен, вы могли бы изменить технику, чтобы сделать НЕ ВХОДИТ.