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


C# IDictionary.SelectMany方法代码示例

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


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

示例1: ConstructErrorString

 public static string ConstructErrorString(IDictionary<string, IList<ModelValidationError>> errors)
 {
     List<string> errorList = new List<string>();
     foreach (var x in errors.SelectMany(p => p.Value.Select(e => new { Property = p.Key, Properties = e.MemberNames.ToList(), Error = e.ErrorMessage })))
     {
        errorList.Add(string.Format("Error with property {0}: {1}", x.Property, x.Error));
     }
     string errorString = string.Join("\n\n", errorList);
     return errorString;
 }
开发者ID:mageomageos,项目名称:animerecs,代码行数:10,代码来源:ModelBindingHelpers.cs

示例2: CanMigrate

 public bool CanMigrate(IDictionary<string, List<MigrationStep>> steps)
 {
   foreach (MigrationStep step in steps.SelectMany(row => row.Value).OrderBy(row => row.Version))
   {
     MigrationReference migrationReference = step.MigrationReference;
     IMigrationFactory migrationFactory = _migrationFactoryChooser.ChooseFactory(migrationReference);
     IDatabaseMigration migration = migrationFactory.CreateMigration(migrationReference);
     step.DatabaseMigration = migration;
     _migrationInitializer.InitializeMigration(migration);
   }
   _log.Info("All migrations are initialized.");
   return true;
 }
开发者ID:Odyl,项目名称:machine.migrations,代码行数:13,代码来源:MigrationRunner.cs

示例3: WriteStats

        private static void WriteStats(StreamWriter sw, IDictionary<File, string> files, TypeDefinition[] types, int total)
        {
            var stats = files.SelectMany(x => x.Key.Annotations).Select(x => x.Type)
                .GroupBy(x => x)
                .Select(x => new {Type = types.First(y => y.Name == x.Key).Display, Count = x.Count()})
                .OrderBy(x => x.Type)
                .ToArray();
            foreach (var stat in stats)
            {
                sw.WriteLine("<tr><th>{0}:</th><td>{1}</td></tr>", WebUtility.HtmlEncode(stat.Type), stat.Count);
            }

            if (stats.Length != 1)
            {
                sw.WriteLine("<tr><th>Total:</th><td>{0}</td></tr>", total);
            }
        }
开发者ID:rjasica,项目名称:HtmlWarningsReportGenerator,代码行数:17,代码来源:IndexWriter.cs

示例4: Genie

 // ReSharper restore UnusedMember.Local
 public Genie(IDictionary<string, AnswerStatistic> answerStatistics, int answeringChoicesCount)
 {
     this.answerStatistics = answerStatistics;
     this.answeringChoicesCount = answeringChoicesCount;
     answersGuessedCount = answerStatistics.Sum(s => s.Value.AnswerCount);
     questionStatistics = answerStatistics.SelectMany(s => s.Value.AnsweredQuestionsById)
                             .GroupBy(p => p.Key)
                             .ToDictionary(g => g.Key, g => new QuestionStatistic
                                 {
                                     ChoicesFrequencies = g.Aggregate(new int[answeringChoicesCount], (curr, p) =>
                                         {
                                             for (int i = 0; i < answeringChoicesCount; i++)
                                             {
                                                 curr[i] += p.Value.ChoicesFrequencies[i];
                                             }
                                             return curr;
                                         })
                                 });
 }
开发者ID:VorobeY1326,项目名称:Bkinator,代码行数:20,代码来源:Genie.cs

示例5: Migrate

 public void Migrate(IDictionary<string, List<MigrationStep>> steps)
 {
   foreach (MigrationStep step in steps.SelectMany(row => row.Value).OrderBy(row => row.Version))
   {
     _log.Info(step);
     using (Machine.Core.LoggingUtilities.Log4NetNdc.Push("{0}", step.MigrationReference.Name))
     {
       _configuration.ActiveConfigurationKey = step.MigrationReference.ConfigurationKey;
       if (!_configuration.ShowDiagnostics)
       {
         IDbTransaction transaction = null;
         try
         {
           transaction = _transactionProvider.Begin();
           step.Apply();
           if (step.Reverting)
           {
             _schemaStateManager.SetMigrationVersionUnapplied(step.Version, _configuration.Scope);
           }
           else
           {
             _schemaStateManager.SetMigrationVersionApplied(step.Version, _configuration.Scope);
           }
           _log.InfoFormat("Comitting");
           transaction.Commit();
         }
         catch (Exception)
         {
           if (transaction != null)
           {
             _log.InfoFormat("Rollback");
             transaction.Rollback();
           }
           throw;
         }
         finally
         {
           _configuration.ActiveConfigurationKey = null;
         }
       }
     }
   }
 }
开发者ID:Odyl,项目名称:machine.migrations,代码行数:43,代码来源:MigrationRunner.cs

示例6: SendRequest

        public static RequestDetails SendRequest(this WebHost webHost, string urlPath, IDictionary<string, IEnumerable<string>> postData) {

            var physicalPath = Bleroy.FluentPath.Path.Get(webHost.PhysicalDirectory);

            var details = new RequestDetails {
                HostName = webHost.HostName,
                UrlPath = urlPath,
                Page = physicalPath
                    .Combine(urlPath.TrimStart('/', '\\'))
                    .GetRelativePath(physicalPath),
            };

            if (!string.IsNullOrEmpty(webHost.Cookies)) {
                details.RequestHeaders.Add("Cookie", webHost.Cookies);
            }

            if (postData != null) {
                var requestBodyText = postData
                    .SelectMany(kv => kv.Value.Select(v => new { k = kv.Key, v }))
                    .Select((kv, n) => new { p = HttpUtility.UrlEncode(kv.k) + "=" + HttpUtility.UrlEncode(kv.v), n })
                    .Aggregate("", (a, x) => a + (x.n == 0 ? "" : "&") + x.p);
                details.PostData = Encoding.Default.GetBytes(requestBodyText);
            }

            webHost.Execute(() => {
                var output = new StringWriter();
                var worker = new Worker(details, output);
                HttpRuntime.ProcessRequest(worker);
                details.ResponseText = output.ToString();
            });

            string setCookie;
            if (details.ResponseHeaders.TryGetValue("Set-Cookie", out setCookie)) {
                Trace.WriteLine(string.Format("Set-Cookie: {0}", setCookie));
                webHost.Cookies = (webHost.Cookies + ';' + setCookie.Split(';').FirstOrDefault()).Trim(';');
            }

            return details;
        }
开发者ID:mofashi2011,项目名称:orchardcms,代码行数:39,代码来源:RequestExtensions.cs

示例7: SendRequest

        public static RequestDetails SendRequest(this WebHost webHost, string urlPath, IDictionary<string, IEnumerable<string>> postData, string requestMethod = null) {

            var physicalPath = Bleroy.FluentPath.Path.Get(webHost.PhysicalDirectory);

            bool isHomepage = urlPath == "/";

            if (!isHomepage)
                urlPath = StripVDir(urlPath, webHost.VirtualDirectory);

            var details = new RequestDetails {
                HostName = webHost.HostName,
                UrlPath = urlPath.Replace('\\', '/'),
            };

            int queryIndex = urlPath.IndexOf('?');
            if (queryIndex >= 0) {
                details.UrlPath = urlPath.Substring(0, queryIndex).Replace('\\', '/');
                details.Query = urlPath.Substring(queryIndex + 1);
            }

            var physicalFilePath = physicalPath.Combine(details.UrlPath.TrimStart('/', '\\'));
            details.Page = (isHomepage ? "" : physicalFilePath.GetRelativePath(physicalPath).ToString());

            if (!File.Exists(physicalFilePath))
                details.Page = details.Page.Replace('\\', '/');

            if (!string.IsNullOrEmpty(webHost.Cookies)) {
                details.RequestHeaders.Add("Cookie", webHost.Cookies);
            }

            if (postData != null) {
                var requestBodyText = postData
                    .SelectMany(kv => kv.Value.Select(v => new { k = kv.Key, v }))
                    .Select((kv, n) => new { p = HttpUtility.UrlEncode(kv.k) + "=" + HttpUtility.UrlEncode(kv.v), n })
                    .Aggregate("", (a, x) => a + (x.n == 0 ? "" : "&") + x.p);

                if (requestMethod == "POST")
                    details.PostData = Encoding.Default.GetBytes(requestBodyText);
                else
                    details.Query = requestBodyText;
            }

            webHost.Execute(() => {
                var output = new StringWriter();
                var worker = new Worker(details, output);
                HttpRuntime.ProcessRequest(worker);
                details.ResponseText = output.ToString();
            });

            string setCookie;
            if (details.ResponseHeaders.TryGetValue("Set-Cookie", out setCookie)) {
                Trace.WriteLine(string.Format("Set-Cookie: {0}", setCookie));
                var cookieName = setCookie.Split(';')[0].Split('=')[0];
                DateTime expires;
                if (!string.IsNullOrEmpty(webHost.Cookies)
                    && setCookie.Contains("expires=")
                    && DateTime.TryParse(setCookie.Split(new[] { "expires=" }, 2, StringSplitOptions.None)[1].Split(';')[0], out expires)
                    && expires < DateTime.Now) {
                    // remove
                    Trace.WriteLine(string.Format("Removing cookie: {0}", cookieName));
                    webHost.Cookies = Regex.Replace(webHost.Cookies, string.Format("{0}=[^;]*;?", cookieName), "");
                }
                else if (!string.IsNullOrEmpty(webHost.Cookies)
                    && Regex.IsMatch(webHost.Cookies, string.Format("\b{0}=", cookieName))) {
                    // replace
                    Trace.WriteLine(string.Format("Replacing cookie: {0}", cookieName));
                    webHost.Cookies = Regex.Replace(webHost.Cookies, string.Format("{0}=[^;]*(;?)", cookieName), string.Format("{0}$1", setCookie.Split(';')[0]));
                }
                else {
                    // add
                    Trace.WriteLine(string.Format("Adding cookie: {0}", cookieName));
                    webHost.Cookies = (webHost.Cookies + ';' + setCookie.Split(';').FirstOrDefault()).Trim(';');
                }
                Trace.WriteLine(string.Format("Cookie jar: {0}", webHost.Cookies));
            }

            return details;
        }
开发者ID:rupertwhitlock,项目名称:IncreasinglyAbsorbing,代码行数:78,代码来源:RequestExtensions.cs

示例8: GetCategories

 private IEnumerable<TranslationCategory> GetCategories(IDictionary<string, TranslationFile> translation)
 {
     return translation.SelectMany(pair => pair.Value.TranslationCategories);
 }
开发者ID:Carbenium,项目名称:gitextensions,代码行数:4,代码来源:FormTranslate.cs

示例9: CleanCache

        private void CleanCache(IDictionary<char, List<Mesh>> cache, bool empty)
        {
            if (empty)
            {
                //Discard everything in this cache
                foreach (var mesh in cache.SelectMany(item => item.Value))
                {
                    //We're sharing buffers, so disposing them now would be very bad! Set them to null to make sure they're not disposed
                    mesh.IndexBuffer = null;
                    mesh.VertexBuffer = null;

                    //Dispose the mesh
                    mesh.Dispose();
                }

                cache.Clear();
            }
            else
            {
                //Find all keys with an empty cache
                foreach (var item in cache)
                    if (item.Value.Count == 0)
                        _cleanup.Add(item.Key);

                //Remove all the useless keys
                foreach (var character in _cleanup)
                    cache.Remove(character);

                _cleanup.Clear();
            }
        }
开发者ID:ylyking,项目名称:Myre,代码行数:31,代码来源:StringModelData.cs

示例10: ResultEvaluation

        public string ResultEvaluation(IDictionary<ClassType, List<CustomImage<ClassType>>> imgDictionary)
        {
            var result = new StringBuilder();
            var total = 0;
            foreach (var key in imgDictionary.Keys)
            {
                int guessedImages = 0;
                foreach (var customImage in imgDictionary[key])
                {
                    guessedImages += DefineImage(customImage) == key ? 1 : 0;
                }

                total += guessedImages;
                result.Append(string.Format("\n{0}: {1}", key,
                    ((double)guessedImages * 100 / imgDictionary[key].Count).ToString("F")));
            }

            result.Append(string.Format("\nВсего: {0}",
                ((double)total * 100 / imgDictionary.SelectMany(x => x.Value).Count()).ToString("F")));

            return result.ToString();
        }
开发者ID:JFFby,项目名称:MRO,代码行数:22,代码来源:Perceptron.cs

示例11: SerializeSafe

 public static bool SerializeSafe(this IZipper _Zipper, IDictionary<string, string> idic, string iFilename, string ipassword)
 {
     return _Zipper.Zipp(idic.SelectMany(kvp => new string[] { kvp.Key, kvp.Value }), iFilename, ipassword);
 }
开发者ID:David-Desmaisons,项目名称:MusicCollection,代码行数:4,代码来源:IZipperExtender.cs

示例12: renderCollidingFaces

        public void renderCollidingFaces(ModelGeometry collisionGeometry, IDictionary<Face, uint> collidingFaces, Camera camera, uint min, uint max)
        {
            if (collidingFaces.Count > 0)
            {
                // fill vertex buffer with collision geometry and set on device
                {
                    float range = Math.Max(max - min, 0.0001f);
                    var data = collidingFaces.SelectMany(face =>
                        {
                            var colour = new Vector3((face.Value - min)/range);
                            return new[]
                            {
                                collisionGeometry.vertices[face.Key.v1],
                                collisionGeometry.normals[face.Key.n1],
                                colour,

                                collisionGeometry.vertices[face.Key.v2],
                                collisionGeometry.normals[face.Key.n2],
                                colour,

                                collisionGeometry.vertices[face.Key.v3],
                                collisionGeometry.normals[face.Key.n3],
                                colour
                            };
                        });

                    mCollidingFacesVertices.SetData<Vector3>(data.ToArray());
                    mGraphicsDevice.SetVertexBuffer(mCollidingFacesVertices);
                }

                // enable alpha blending
                var previousBlendState = mGraphicsDevice.BlendState;
                mGraphicsDevice.BlendState = mAlphaBlendState;

                // draw
                mCollisionsShader.Parameters["WorldViewProjection"].SetValue(camera.viewMatrix * camera.projectionMatrix);
                mCollisionsShader.CurrentTechnique.Passes[0].Apply();
                mGraphicsDevice.DrawPrimitives(PrimitiveType.TriangleList, 0, collidingFaces.Count);

                // restore previous blend mode
                mGraphicsDevice.BlendState = previousBlendState;
            }
        }
开发者ID:xboxlife,项目名称:xna-bounce,代码行数:43,代码来源:Renderer.cs

示例13: AddAssignment

        /// <summary>
        /// Creates a new assignment with the given data.
        /// </summary>
        public TestDatabaseBuilder AddAssignment(
            string classroomName,
            string assignmentGroupName,
            string assignmentName,
            IDictionary<string, DateTime> sectionDueDates,
            IDictionary<string, string[]> questionsByCategory)
        {
            var classroom = _buildContext.Classrooms
                .Include(c => c.Sections)
                .Single(c => c.Name == classroomName);

            var sections = classroom.Sections
                .ToDictionary(s => s.Name, s => s.Id);

            var allQuestions = _buildContext.Questions
                .Include(q => q.QuestionCategory)
                .ToList()
                .GroupBy(q => q.QuestionCategory.Name)
                .ToDictionary(group => group.Key, group => group.ToDictionary(q => q.Name, q => q.Id));

            var assignment = new Assignment()
            {
                ClassroomId = classroom.Id,
                Name = assignmentName,
                GroupName = assignmentGroupName,
                DueDates = sectionDueDates.Select
                (
                    kvp => new AssignmentDueDate()
                    {
                        SectionId = sections[kvp.Key],
                        DueDate = kvp.Value
                    }
                ).ToList(),
                Questions = questionsByCategory.SelectMany
                (
                    qs => qs.Value,
                    (kvp, questionName) => new AssignmentQuestion()
                    {
                        QuestionId = allQuestions[kvp.Key][questionName],
                        Points = 1.0
                    }
                ).ToList()
            };

            _buildContext.Assignments.Add(assignment);
            _buildContext.SaveChanges();

            return this;
        }
开发者ID:CSClassroom,项目名称:CSClassroom,代码行数:52,代码来源:TestDatabaseBuilder.cs

示例14: ResolveOperations

        public IList<PackageOperation> ResolveOperations(IEnumerable<IPackage> packages, out IList<IPackage> packagesByDependencyOrder, bool allowPrereleaseVersionsBasedOnPackage = false)
        {
            _packagesByDependencyOrder = new Dictionary<string, IList<IPackage>>();
            _operations.Clear();
            Marker.Clear();
            _packagesToKeep.Clear();

            Debug.Assert(Operations is List<PackageOperation>);
            foreach (var package in packages)
            {
                if (!_operations.Contains(package, PackageAction.Install))
                {
                    var allowPrereleaseVersions = _allowPrereleaseVersions;
                    try
                    {
                        if (allowPrereleaseVersionsBasedOnPackage)
                        {
                            // Update _allowPrereleaseVersions before walking a package if allowPrereleaseVersionsBasedOnPackage is set to true
                            // This is mainly used when bulk resolving operations for reinstalling packages
                            _allowPrereleaseVersions = _allowPrereleaseVersions || !package.IsReleaseVersion();
                        }
                        Walk(package);
                    }
                    finally
                    {
                        _allowPrereleaseVersions = allowPrereleaseVersions;
                    }
                }
            }

            // Flatten the dictionary to create a list of all the packages. Only this item the packages visited first during the walk will appear on the list. Also, only retain distinct elements
            IEnumerable<IPackage> allPackagesByDependencyOrder = _packagesByDependencyOrder.SelectMany(p => p.Value).Distinct();

            // Only retain the packages for which the operations are being resolved for
            packagesByDependencyOrder = allPackagesByDependencyOrder.Where(p => packages.Any(q => p.Id == q.Id && p.Version == q.Version)).ToList();
            Debug.Assert(packagesByDependencyOrder.Count == packages.Count());

            _packagesByDependencyOrder.Clear();
            _packagesByDependencyOrder = null;

            return Operations.Reduce();
        }
开发者ID:rikoe,项目名称:nuget,代码行数:42,代码来源:InstallWalker.cs

示例15: Transform

 public static IDictionary<string, int> Transform(IDictionary<int, IList<string>> input)
 {
     return input.SelectMany(kvp => kvp.Value.Select(c => new KeyValuePair<string, int>(c.ToLower(), kvp.Key)))
       .ToDictionary(p => p.Key, p => p.Value);
 }
开发者ID:bcachet,项目名称:exercism-csharp,代码行数:5,代码来源:ETL.cs


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