本文整理汇总了C#中IReadOnlyList.SingleOrDefault方法的典型用法代码示例。如果您正苦于以下问题:C# IReadOnlyList.SingleOrDefault方法的具体用法?C# IReadOnlyList.SingleOrDefault怎么用?C# IReadOnlyList.SingleOrDefault使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IReadOnlyList
的用法示例。
在下文中一共展示了IReadOnlyList.SingleOrDefault方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Save
public static void Save(IReadOnlyList<Contribution> contributions)
{
Guard.AgainstNullArgument(nameof(contributions), contributions);
using (var writer = new StreamWriter("contributions.txt", false))
{
writer.Write("Login/Group");
foreach (var group in contributions.Select(contribution => contribution.Group).Distinct())
{
writer.Write("\t" + @group);
}
writer.WriteLine();
foreach (var login in contributions.Select(contribution => contribution.Login).Distinct())
{
writer.Write(login);
foreach (var group in contributions.Select(contribution => contribution.Group).Distinct())
{
var contribution =
contributions.SingleOrDefault(
candidate => candidate.Group == @group && candidate.Login == login);
writer.Write(
"\t" +
(contribution?.Score.ToString(CultureInfo.InvariantCulture) ?? "0"));
}
writer.WriteLine();
}
}
}
示例2: CalculateSchemaChanges
public IReadOnlyList<SchemaMigrationCommand> CalculateSchemaChanges(IReadOnlyList<Table> schema, Configuration configuration)
{
var commands = new List<SchemaMigrationCommand>();
foreach (var table in configuration.Tables.Values)
{
var existingTable = schema.SingleOrDefault(x => x.Name == table.Name);
if (existingTable == null)
{
commands.Add(new CreateTable(table));
continue;
}
foreach (var column in table.Columns)
{
var existingColumn = existingTable.Columns.SingleOrDefault(x => Equals(x.Name, column.Name));
if (existingColumn == null)
{
commands.Add(new AddColumn(table.Name, column));
}
}
foreach (var column in existingTable.Columns)
{
if (table.Columns.Any(x => Equals(x.Name, column.Name)))
continue;
commands.Add(new RemoveColumn(table, column));
}
}
foreach (var table in schema)
{
if (configuration.Tables.ContainsKey(table.Name))
continue;
commands.Add(new RemoveTable(table.Name));
}
return commands;
}
示例3: GetSeedType
private INamedTypeDefinition GetSeedType(string docId, IReadOnlyList<INamedTypeDefinition> seedTypes)
{
Debug.Assert(seedTypes.Count != 0); // we should already have checked for non-existent types.
if (seedTypes.Count == 1)
{
return seedTypes[0];
}
string preferredSeedAssembly;
if (_seedTypePreferences.TryGetValue(docId, out preferredSeedAssembly))
{
return seedTypes.SingleOrDefault(t => String.Equals(t.GetAssembly().Name.Value, preferredSeedAssembly, StringComparison.OrdinalIgnoreCase));
}
return null;
}
示例4: DeserializeFields
/// <summary>
/// Deserialize the fields for the given instance.
/// </summary>
/// <param name="serializer">The serializer to utilize when deserializing nested objects.</param>
/// <param name="jsonObject">The JSON object to deserialize from.</param>
/// <param name="fields">The list of fields to deserialize.</param>
/// <param name="instance">The instance to deserialize into.</param>
void DeserializeFields(IJsonSerializer serializer, JsonObject jsonObject, IReadOnlyList<IField> fields, object instance)
{
foreach (var member in jsonObject.Members)
{
var field = fields.SingleOrDefault(f => String.Equals(f.Name, member.Name, StringComparison.OrdinalIgnoreCase));
field?.SetValue(instance, serializer.DeserializeValue(field.Accessor.ValueType, member.Value));
}
}