当前位置: 首页>>代码示例>>C#>>正文


C# IDictionary.Where方法代码示例

本文整理汇总了C#中IDictionary.Where方法的典型用法代码示例。如果您正苦于以下问题:C# IDictionary.Where方法的具体用法?C# IDictionary.Where怎么用?C# IDictionary.Where使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IDictionary的用法示例。


在下文中一共展示了IDictionary.Where方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ToXml

        public static string ToXml(IDictionary<string, object> dictionary, string elementName)
        {
            string attributes = dictionary.Where(kvp => kvp.Key.EndsWith(AttributeMarker)).Aggregate<KeyValuePair<string, object>, string>(null, (current, kvp) => current + string.Format(" {0}=\"{1}\"", kvp.Key.Replace(AttributeMarker, string.Empty), kvp.Value));

            var stringBuilder = new StringBuilder("<{0}{1}>".Fmt(elementName, attributes));
            foreach (var kvp in dictionary.Where(k => !k.Key.EndsWith(AttributeMarker)))
            {
                if (kvp.Value is IDictionary<string, object>)
                    stringBuilder.Append(ToXml((IDictionary<string, object>)kvp.Value, kvp.Key));
                else if (kvp.Value is dynamic[])
                {
                    foreach (var dyn in (dynamic[])kvp.Value)
                    {
                        stringBuilder.Append(ToXml(dyn, kvp.Key));
                    }
                }
                else if (kvp.Value.GetType().IsArray || (kvp.Value.GetType().IsGenericType && kvp.Value is IEnumerable))
                {
                    foreach (var value in (IEnumerable)kvp.Value)
                    {
                        stringBuilder.Append("<{0}>{1}</{0}>".Fmt(kvp.Key, value));
                    }
                }
                else
                    stringBuilder.Append("<{0}>{1}</{0}>".Fmt(kvp.Key, kvp.Value));
            }
            stringBuilder.Append("</{0}>".Fmt(elementName));
            return stringBuilder.ToString();
        }
开发者ID:JonCanning,项目名称:CerealBox,代码行数:29,代码来源:ConvertDynamic.cs

示例2: Reassemble

        public IDictionary<string, string> Reassemble(string clientId, IDictionary<string, string> input)
        {
            var expectedDatabusProperties = input.Where(kv => kv.Key.Contains("NServiceBus.DataBus.")).ToList();

            if (!expectedDatabusProperties.Any())
            {
                return input;
            }

            lock (headers)
            {
                IDictionary<string, string> collection;
                if (!headers.TryGetValue(clientId, out collection))
                {
                    var message = string.Format("Expected {0} databus properties. None were received. Please resubmit.",expectedDatabusProperties.Count);
                    throw new ChannelException(412,message);
                }

                foreach (var propertyHeader in expectedDatabusProperties)
                {
                    string propertyValue;
                    if (!collection.TryGetValue(propertyHeader.Key, out propertyValue))
                    {
                        var message = string.Format("Databus property {0} was never received. Please resubmit.",propertyHeader.Key);
                        throw new ChannelException(412,message);
                    }
                    input[propertyHeader.Key] = propertyValue;
                }

                headers.Remove(clientId);
            }
            return input;
        }
开发者ID:ramonsmits,项目名称:NServiceBus.Gateway,代码行数:33,代码来源:DataBusHeaderManager.cs

示例3: Store

 /// <summary>
 /// Сохраняет заголовки входящего сообщения.
 /// </summary>
 /// <param name="headers">Заголовки входящего сообщения.</param>
 public void Store(IDictionary<string, object> headers)
 {
     var refindedHeaders = headers
         .Where(p => !this.blackHeaderSet.Contains(p.Key))
         .ToDictionary(p => p.Key, p => p.Value);
     CallContext.LogicalSetData(this.storageKey, refindedHeaders);
 }
开发者ID:ehramovich,项目名称:Contour,代码行数:11,代码来源:MessageHeaderStorage.cs

示例4: Insert

        public IDictionary<string, object> Insert(AdoAdapter adapter, string tableName, IDictionary<string, object> data, IDbTransaction transaction = null,
            bool resultRequired = false)
        {
            var table = adapter.GetSchema().FindTable(tableName);

            var insertData = data.Where(p => table.HasColumn(p.Key)).Select((kv, idx) => new InsertColumn
            {
                Name = kv.Key,
                ParameterName = "@p" + idx,
                Value = kv.Value,
                Column = (FbColumn) table.FindColumn(kv.Key)
            }).ToArray();

            if (transaction == null)
            {
                using (var connection = adapter.ConnectionProvider.CreateConnection())
                {
                    connection.Open();
                    return CreateAndExecuteInsertCommand(connection, table, insertData, resultRequired);
                }
            }
            else
            {
                return CreateAndExecuteInsertCommand(transaction.Connection, table, insertData, resultRequired, transaction);
            }
            
        }
开发者ID:rafsawicki,项目名称:Simple.Data.Firebird,代码行数:27,代码来源:FbInserter.cs

示例5: GetFizzBuzzCustomResults

        /// <summary>
        /// Returns a list of type string representing each number between a given start number an end number, or a particular phrase based on the divisibility of the number value passed.
        /// 
        /// </summary>
        /// <param name="start">starting number</param>
        /// <param name="end">ending number</param>
        /// <param name="combos">IDictionary of numbers and associated phrases to replace numbers if any give number is divisible by the passed value.</param>
        /// <returns></returns>
        public List<string> GetFizzBuzzCustomResults(short start, short end, IDictionary<short,string> combos)
        {
            if (end < start)
            {
                throw new ApplicationException("end number must be greater than start number");
            }

            var results = new List<string>();
            var extraLoop = combos != null;

            for (var i = start; i <= end; i++)
            {
                if (!extraLoop) { results.Add(i.ToString()); continue;}

                var sb = new StringBuilder();
                var i1 = i;
                foreach (var combo in combos.Where(combo => i1%combo.Key == 0))
                {
                    sb.Append(combo.Value);
                }

                results.Add(sb.Length > 0 ? sb.ToString() : i.ToString());
            }

            return results;
        }
开发者ID:sgallagher13,项目名称:FizzBuzzTest,代码行数:34,代码来源:FizzBuzz.cs

示例6: ConvertValue

        private static object ConvertValue(string elementName, BsonValue value, IDictionary<string, string> aliases)
        {
            if (value.IsBsonDocument)
            {
                aliases = aliases.Where(x => x.Key.StartsWith(elementName + ".")).ToDictionary(x => x.Key.Remove(0, elementName.Length + 1), x => x.Value);
                return value.AsBsonDocument.ToSimpleDictionary(aliases);
            }
            else if (value.IsBsonArray)
                return value.AsBsonArray.Select(v => ConvertValue(elementName, v, aliases)).ToList();
            else if (value.IsBoolean)
                return value.AsBoolean;
            else if (value.IsDateTime)
                return value.AsDateTime;
            else if (value.IsDouble)
                return value.AsDouble;
            else if (value.IsGuid)
                return value.AsGuid;
            else if (value.IsInt32)
                return value.AsInt32;
            else if (value.IsInt64)
                return value.AsInt64;
            else if (value.IsObjectId)
                return value.AsObjectId;
            else if (value.IsString)
                return value.AsString;
            else if (value.BsonType == BsonType.Binary)
                 return value.AsByteArray;
 
            return value.RawValue;
        }
开发者ID:BraveNewMath,项目名称:Simple.Data.MongoDB,代码行数:30,代码来源:BsonDocumentExtensions.cs

示例7: Upsert

        private IDictionary<string, object> Upsert(string tableName, IDictionary<string, object> data, SimpleExpression criteria, bool resultRequired,
                                   IDbConnection connection)
        {
            var finder = _transaction == null
                             ? new AdoAdapterFinder(_adapter, connection)
                             : new AdoAdapterFinder(_adapter, _transaction);

            var existing = finder.FindOne(tableName, criteria);
            if (existing != null)
            {
                // Don't update columns used as criteria
                var keys = criteria.GetOperandsOfType<ObjectReference>().Select(o => o.GetName().Homogenize());
                var updateData = data.Where(kvp => keys.All(k => k != kvp.Key.Homogenize())).ToDictionary();
                if (updateData.Count == 0)
                {
                    return existing;
                }

                var commandBuilder = new UpdateHelper(_adapter.GetSchema()).GetUpdateCommand(tableName, updateData, criteria);
                if (_transaction == null)
                {
                    _adapter.Execute(commandBuilder, connection);
                }
                else
                {
                    _adapter.Execute(commandBuilder, _transaction);
                }
                return resultRequired ? finder.FindOne(tableName, criteria) : null;
            }
            var inserter = _transaction == null
                               ? new AdoAdapterInserter(_adapter, connection)
                               : new AdoAdapterInserter(_adapter, _transaction);
            return inserter.Insert(tableName, data, resultRequired);
        }
开发者ID:Ripper555,项目名称:Simple.Data,代码行数:34,代码来源:AdoAdapterUpserter.cs

示例8: ExploreProjects

        public void ExploreProjects(IDictionary<IProject, FileSystemPath> projects, MetadataLoader loader, IUnitTestElementsObserver observer)
        {
            var silverlightProjects = projects.Where(p => p.Key.IsSilverlight()).ToDictionary(p => p.Key, p => p.Value);

            this.metadataElementsSource.ExploreProjects(silverlightProjects, loader, observer, this.ExploreAssembly);
            observer.OnCompleted();
        }
开发者ID:icnocop,项目名称:AgUnit,代码行数:7,代码来源:SilverlightElementsSource.cs

示例9: Insert

    public IDictionary<string, object> Insert(AdoAdapter adapter, string tableName, IDictionary<string, object> data, IDbTransaction transaction, bool resultRequired = false)
    {
      var table = DatabaseSchema.Get(adapter.ConnectionProvider, adapter.ProviderHelper).FindTable(tableName);
      if (table == null) throw new SimpleDataException(String.Format("Table '{0}' not found", tableName));

      var insertData = data.Where(p => table.HasColumn(p.Key) && !table.FindColumn(p.Key).IsIdentity).ToDictionary();

      var insertColumns = insertData.Keys.Select(table.FindColumn).ToArray();

      var columnsSql = insertColumns.Select(s => s.QuotedName).Aggregate((agg, next) => String.Concat(agg, ",", next));
      var valuesSql = insertColumns.Select((val, idx) => ":p" + idx.ToString()).Aggregate((agg, next) => String.Concat(agg, ",", next));

      var insertSql = string.Format("INSERT INTO {0} ({1}) VALUES({2}) RETURNING *;", table.QualifiedName, columnsSql, valuesSql);
      if (transaction != null)
      {
        using(var cmd = transaction.Connection.CreateCommand())
        {
          cmd.Transaction = transaction;
          cmd.CommandText = insertSql;
          return ExecuteInsert(cmd, insertColumns, insertData.Values.ToArray());
        }
      }

      using (var conn = adapter.ConnectionProvider.CreateConnection())
      {
        conn.Open();
        using(var cmd = conn.CreateCommand())
        {
          cmd.CommandText = insertSql;
          return ExecuteInsert(cmd, insertColumns, insertData.Values.ToArray());
        }
      }
    }
开发者ID:ChrisMH,项目名称:Simple.Data.PostgreSql,代码行数:33,代码来源:PgCustomInserter.cs

示例10: CommandProvider

 public CommandProvider(CommandConfigurer commandConfigurer)
 {
     _commands = new Dictionary<string, StackCommand>();
         _constants = new Dictionary<String, double>();
          commandConfigurer.config(this);
         _operators = _commands.Where(entry => entry.Value is Operator).Select(entry => entry.Key).ToList();
 }
开发者ID:zhy2002,项目名称:TextTransformer,代码行数:7,代码来源:CommandProvider.cs

示例11: ClaimsFromJwt

        private static ICollection<Claim> ClaimsFromJwt(IDictionary<string, object> jwtData, string issuer)
        {
            issuer = issuer ?? DefaultIssuer;

            var list = jwtData.Where(p => !claimsToExclude.Contains(p.Key)) // don't include specific claims
                              .Select(p => new { Key = p.Key, Values = p.Value as JArray ?? new JArray { p.Value } }) // p.Value is either claim value of ArrayList of values
                              .SelectMany(p => p.Values.Cast<object>()
                                                .Select(v => new Claim(p.Key, v.ToString(), StringClaimValueType, issuer, issuer)))
                              .ToList();

            // set claim for user name
            // use original jwtData because claimsToExclude filter has sub and otherwise it wouldn't be used
            var userNameClaimType = claimTypesForUserName.FirstOrDefault(ct => jwtData.ContainsKey(ct));
            if (userNameClaimType != null)
            {
                list.Add(new Claim(NameClaimType, jwtData[userNameClaimType].ToString(), StringClaimValueType, issuer, issuer));
            }

            // set claims for roles array
            list.Where(c => c.Type == "roles").ToList().ForEach(r =>
            {
                list.Add(new Claim(RoleClaimType, r.Value, StringClaimValueType, issuer, issuer));
            });

            list.RemoveAll(c => c.Type == "roles");

            return list;
        }
开发者ID:derekchisholm,项目名称:CarsiteWebAPI,代码行数:28,代码来源:JsonWebToken.cs

示例12: SerializeElements

        void SerializeElements(IDictionary<string, CfgMetadata> meta, object node, StringBuilder builder, int level) {

            foreach (var pair in meta.Where(kv => kv.Value.ListType != null)) {
                var items = (IList)meta[pair.Key].Getter(node);
                if (items == null || items.Count == 0)
                    continue;

                Indent(builder, level);
                builder.Append("<");
                builder.Append(pair.Key);
                builder.AppendLine(">");

                foreach (var item in items) {
                    var metaData = CfgMetadataCache.GetMetadata(item.GetType());
                    Indent(builder, level + 1);
                    builder.Append("<add");
                    SerializeAttributes(metaData, item, builder);

                    if(JustAttributes(metaData, item)) {
                        builder.AppendLine(" />");
                    } else {
                        builder.AppendLine(">");
                        SerializeElements(metaData, item, builder, level + 2);
                        Indent(builder, level + 1);
                        builder.AppendLine("</add>");
                    }
                }

                Indent(builder, level);
                builder.Append("</");
                builder.Append(pair.Key);
                builder.AppendLine(">");
            }

        }
开发者ID:modulexcite,项目名称:Cfg-NET,代码行数:35,代码来源:XmlSerializer.cs

示例13: Reassemble

        public IDictionary<string, string> Reassemble(string clientId, IDictionary<string, string> input)
        {
            var expectedDatabusProperties =
                input.Where(kv => kv.Key.Contains(HeaderMapper.DATABUS_PREFIX)).ToList();
            if (!expectedDatabusProperties.Any())
            {
                return input;
            }

            lock (headers)
            {
                IDictionary<string, string> collection;
                if (!headers.TryGetValue(clientId, out collection))
                {
                    throw new ChannelException(412,
                        string.Format("Expected {0} databus properties. None were received. Please resubmit.",
                            expectedDatabusProperties.Count));
                }

                foreach (var propertyHeader in expectedDatabusProperties)
                {
                    if (!collection.ContainsKey(propertyHeader.Key))
                    {
                        throw new ChannelException(412,
                            string.Format("Databus property {0} was never received. Please resubmit.",
                                propertyHeader.Key));
                    }
                    input[propertyHeader.Key] = collection[propertyHeader.Key];
                }

                headers.Remove(clientId);
            }
            return input;
        }
开发者ID:johannesg,项目名称:NServiceBus,代码行数:34,代码来源:DataBusHeaderManager.cs

示例14: DictToQuerystring

 public static string DictToQuerystring(IDictionary<string, string> qs)
 {
     return string.Join("&", qs
                                 .Where(k => !string.IsNullOrEmpty(k.Key))
                                 .Select(k => string.Format("{0}={1}", HttpUtility.UrlEncode(k.Key), HttpUtility.UrlEncode(k.Value)))
                                 .ToArray());
 }
开发者ID:toastchee,项目名称:NHWebConsole,代码行数:7,代码来源:UrlHelper.cs

示例15: GetAttributes

        private string GetAttributes(IDictionary<string, object> htmlAttributes, ISet<string> skippedAttributes)
        {
            var attributes = String.Join(" ", htmlAttributes
                .Where(kvp => !skippedAttributes.Contains(kvp.Key))
                .Select(kvp => kvp.Key + "=\"" + kvp.Value + "\""));

            return attributes != "" ? (" " + attributes) : "";
        }
开发者ID:TheCloudlessSky,项目名称:Ignite,代码行数:8,代码来源:TagRenderer.cs


注:本文中的IDictionary.Where方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。