本文整理汇总了C#中IReadOnlyList.Except方法的典型用法代码示例。如果您正苦于以下问题:C# IReadOnlyList.Except方法的具体用法?C# IReadOnlyList.Except怎么用?C# IReadOnlyList.Except使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IReadOnlyList
的用法示例。
在下文中一共展示了IReadOnlyList.Except方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetOrCreate
public IReadOnlyList<IUniverseDao> GetOrCreate(IReadOnlyList<string> universeNames)
{
var existing = Context.Universes.Where(u => universeNames.Contains(u.Name)).ToImmutableList();
var missingNames = universeNames.Except(existing.Select(u => u.Name));
var allUniverses = new List<UniverseDao>(existing);
foreach (var name in missingNames)
{
var universe = new UniverseDao { Name = name };
Context.Universes.Add(universe);
allUniverses.Add(universe);
}
Context.SaveChanges();
return allUniverses;
}
示例2: PickNewServer
protected virtual Uri PickNewServer(Uri lastServer, IReadOnlyList<Uri> serverPool)
{
if (!serverPool.Any())
{
throw new NoServersAvailableException();
}
if (serverPool.Count == 1)
{
return serverPool[0];
}
if (lastServer != null)
{
serverPool = serverPool.Except(new[] { lastServer }).ToList();
}
if (!serverPool.Any())
{
if (lastServer == null)
{
throw new NoServersAvailableException();
}
return lastServer;
}
if (serverPool.Count == 1)
{
return serverPool[0];
}
_server++;
int index = _server;
return serverPool[index % serverPool.Count];
}
示例3: FindTenantsByName
private async Task<IEnumerable<TenantResource>> FindTenantsByName(IReadOnlyList<string> tenantNames)
{
if (!tenantNames.Any())
{
return Enumerable.Empty<TenantResource>();
}
if (tenantNames.Contains("*"))
{
return await repository.Tenants.FindAll().ConfigureAwait(false);
}
var tenantsByName = await repository.Tenants.FindByNames(tenantNames).ConfigureAwait(false);
var missing = tenantsByName == null || !tenantsByName.Any()
? tenantNames.ToArray()
: tenantNames.Except(tenantsByName.Select(e => e.Name), StringComparer.OrdinalIgnoreCase).ToArray();
var tenantsById = await repository.Tenants.Get(missing).ConfigureAwait(false);
missing = tenantsById == null || !tenantsById.Any()
? missing
: missing.Except(tenantsById.Select(e => e.Id), StringComparer.OrdinalIgnoreCase).ToArray();
if (missing.Any())
{
throw new ArgumentException($"Could not find the {"tenant" + (missing.Length == 1 ? "" : "s")} {string.Join(", ", missing)} on the Octopus server.");
}
var allTenants = Enumerable.Empty<TenantResource>();
if (tenantsById != null)
{
allTenants = allTenants.Concat(tenantsById);
}
if (tenantsByName != null)
{
allTenants = allTenants.Concat(tenantsByName);
}
return allTenants;
}
示例4: UpdateFolders
public async void UpdateFolders(IReadOnlyList<StorageFolder> folders)
{
var futureAccessList = StorageApplicationPermissions.FutureAccessList;
var oldFolders = await GetFolders();
var toRemove = oldFolders.Except(folders).ToList();
_watchedProvider.RemoveFolders(toRemove);
var toAdd = folders.Except(oldFolders).ToList();
foreach (var folder in toAdd)
{
if (!futureAccessList.CheckAccess(folder))
futureAccessList.Add(folder);
}
_watchedProvider.AddFolders(toAdd);
_playlistFile.SetFolders(folders);
}