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


C# Dictionary.SelectMany方法代码示例

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


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

示例1: Detect

 /// <summary>
 /// Detects which expressions in a <see cref="Grammar"/> are left-adjacent.
 /// </summary>
 /// <param name="grammar">The <see cref="Grammar"/> to inspect.</param>
 /// <returns>A <see cref="ILookup{Rule, Expression}"/> containing the left-adjacent rules.</returns>
 public static ILookup<Rule, Expression> Detect(Grammar grammar)
 {
     var leftAdjacent = new Dictionary<Rule, List<Expression>>();
     var zeroWidth = ZeroWidthEvaluator.Evaluate(grammar);
     new LeftRecursionExpressionTreeWalker(zeroWidth, leftAdjacent).WalkGrammar(grammar);
     return leftAdjacent.SelectMany(i => i.Value, (i, v) => new { i.Key, Value = v }).ToLookup(i => i.Key, i => i.Value);
 }
开发者ID:KevinKelley,项目名称:Pegasus,代码行数:12,代码来源:LeftAdjacencyDetector.cs

示例2: Run

        public void Run(BuildTarget target, 
			NodeData node, 
			ConnectionPointData inputPoint,
			ConnectionData connectionToOutput, 
			Dictionary<string, List<Asset>> inputGroupAssets, 
			List<string> alreadyCached, 
			Action<ConnectionData, Dictionary<string, List<Asset>>, List<string>> Output)
        {
            var incomingAssets = inputGroupAssets.SelectMany(v => v.Value).ToList();

            var modifier = ModifierUtility.CreateModifier(node, target);
            UnityEngine.Assertions.Assert.IsNotNull(modifier);
            bool isAnyAssetModified = false;

            foreach(var asset in incomingAssets) {
                var loadedAsset = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(asset.importFrom);
                if(modifier.IsModified(loadedAsset)) {
                    modifier.Modify(loadedAsset);
                    isAnyAssetModified = true;
                }
            }

            if(isAnyAssetModified) {
                // apply asset setting changes to AssetDatabase.
                AssetDatabase.Refresh();
            }

            // Modifier does not add, filter or change structure of group, so just pass given group of assets
            Output(connectionToOutput, inputGroupAssets, null);
        }
开发者ID:unity3d-jp,项目名称:AssetGraph,代码行数:30,代码来源:IntegratedGUIModifier.cs

示例3: LetterValuePairs

 private static IEnumerable<dynamic> LetterValuePairs(
 Dictionary<int, IList<string>> old)
 {
     return old.SelectMany(
       kvp => kvp.Value.Select(
     letter => new {Letter = letter.ToLower(), Value = kvp.Key}));
 }
开发者ID:ullet,项目名称:exercism,代码行数:7,代码来源:ETL.cs

示例4: TagConverter

        public TagConverter(ISettingsProvider settingsProvider)
        {
            using (var reader = new StreamReader(settingsProvider.Get<string>(SettingsKeys.TagMappingFile)))
            {
                normalizedTags = reader
                    .ReadAllLines()
                    .Where(x => !string.IsNullOrWhiteSpace(x))
                    .Select(ParseTagDescription)
                    .ToDictionary(x => x.Name, x => x.RawTags);

                rawTagsMapping = normalizedTags
                    .SelectMany(normalizedTag => normalizedTag.Value.Select(rawTag => new { Normalized = normalizedTag.Key, Raw = rawTag }))
                    .ToDictionary(x => x.Raw, x => x.Normalized);
            }

            using (var reader = new StreamReader(settingsProvider.Get<string>(SettingsKeys.CorrectionsFile)))
            {
                correctionsByProblemUrl = reader
                    .ReadAllLines()
                    .Where(x => !string.IsNullOrWhiteSpace(x))
                    .SelectMany(ParseCorrections)
                    .GroupBy(x => x.ProblemUrl)
                    .ToDictionary(x => x.Key, x => x.ToArray());
            }
        }
开发者ID:BurlakovNick,项目名称:AcmProblemClassifier,代码行数:25,代码来源:TagConverter.cs

示例5: FakeDataQueue

 /// <summary>
 /// Initializes a new instance of the <see cref="FakeDataQueue"/> class to randomly emit data for each symbol
 /// </summary>
 public FakeDataQueue()
 {
     _ticks = new ConcurrentQueue<BaseData>();
     _symbols = new Dictionary<SecurityType, List<string>>();
     _timer = new Timer
     {
         AutoReset = true,
         Enabled = true
     };
     _timer.Elapsed += (sender, args) =>
     {
         _timer.Interval = _random.Next(15, 2500); // around each second
         foreach (var symbol in _symbols.SelectMany(x => x.Value))
         {
             // 50/50 repeating chance of emitting each symbol
             while (_random.NextDouble() > 0.75)
             {
                 _ticks.Enqueue(new Tick
                 {
                     Time = DateTime.Now,
                     Symbol = symbol,
                     Value = 10 + (decimal) Math.Abs(Math.Sin(DateTime.Now.TimeOfDay.TotalMinutes)),
                     TickType = TickType.Trade,
                     Quantity = _random.Next(10, (int) _timer.Interval)
                 });
             }
         }
     };
 }
开发者ID:santoshree,项目名称:Lean,代码行数:32,代码来源:FakeDataQueue.cs

示例6: Given_30_New_Feeds_GetLatest_Returns_Feeds_In_Correct_Order

        public void Given_30_New_Feeds_GetLatest_Returns_Feeds_In_Correct_Order()
        {
            var urlFeeds = new Dictionary<string, IEnumerable<Item>>
            {
                { "http://atom1", BuildFeeds(5) },
                { "http://atom2", BuildFeeds(10) },
                { "http://atom3", BuildFeeds(15) }
            };
            var minDate = urlFeeds.SelectMany(kv => kv.Value).Select(f => f.Published).Min();
            var maxDate = urlFeeds.SelectMany(kv => kv.Value).Select(f => f.Published).Max();
            var rssAggregator = BuildRssAggregator(urlFeeds);

            var feeds = rssAggregator.GetLatest(DateTime.MinValue).ToList();

            Assert.AreEqual(minDate, feeds.First().Published);
            Assert.AreEqual(maxDate, feeds.Last().Published);
        }
开发者ID:sergejusb,项目名称:DotNetGroup,代码行数:17,代码来源:RssAggregatorTests.cs

示例7: Given_30_New_Tweets_GetLatest_Returns_Tweets_In_Correct_Order

        public void Given_30_New_Tweets_GetLatest_Returns_Tweets_In_Correct_Order()
        {
            var queryTweets = new Dictionary<string, IEnumerable<Item>>
            {
                { "#hashtag", BuildTweets(5) },
                { "@user", BuildTweets(10) },
                { "text", BuildTweets(15) }
            };
            var minDate = queryTweets.SelectMany(kv => kv.Value).Select(f => f.Published).Min();
            var maxDate = queryTweets.SelectMany(kv => kv.Value).Select(f => f.Published).Max();
            var twitterAggregator = BuildTwitterAggregator(queryTweets);

            var tweets = twitterAggregator.GetLatest(DateTime.MinValue).ToList();

            Assert.AreEqual(minDate, tweets.First().Published);
            Assert.AreEqual(maxDate, tweets.Last().Published);
        }
开发者ID:mmozuras,项目名称:DotNetGroup,代码行数:17,代码来源:TwitterAggregatorTests.cs

示例8: GetDistinctFieldCodes

 private string[] GetDistinctFieldCodes(Dictionary<TemplateModel, List<FieldCodeSummaryModel>> analysisData)
 {
     var distinctFieldCodes = new List<string>();
     foreach (var fieldCodeSummary in analysisData.SelectMany(i => i.Value.Where(fc => !distinctFieldCodes.Contains(fc.ColumnName))))
     {
         distinctFieldCodes.Add(fieldCodeSummary.ColumnName);
     }
     return distinctFieldCodes.OrderBy(fc => fc).ToArray();
 }
开发者ID:BlueTemplar,项目名称:StaticTemplateAnalyser,代码行数:9,代码来源:AnalysisDataParser.cs

示例9: GetItems

        public IEnumerable<BlogPost> GetItems(int feedCount = 20, int pagenum = 0)
        {
            string json = File.ReadAllText("feeddata.json");
            var metadataEntries = json.FromJson<MetaData[]>();

            var syndicationFeeds = new Dictionary<string, SyndicationFeed>();

            foreach (var metadata in metadataEntries)
            {
                var reader = XmlReader.Create(metadata.FeedUrl);
                var feed = SyndicationFeed.Load(reader);

                reader.Close();
                if (feed != null)
                {
                    syndicationFeeds.Add(metadata.Id, feed);
                }
            }

            var data = syndicationFeeds
                .SelectMany(pair => pair.Value.Items, (pair, item) => new { Id = pair.Key, Item = item })
                .Where(x => x.Item.Categories.Any(y => y.Name.ToLower() == "nancy" || y.Name.ToLower() == "nancyfx"))
                .Select(x =>
                {
                    var rssauthor = x.Item.Authors.FirstOrDefault();
                    var metaauthor = metadataEntries.FirstOrDefault(y => y.Id == x.Id);
                    var authorname = string.Empty;
                    var authoremail = string.Empty;

                    if (metaauthor != null)
                    {
                        authorname = rssauthor == null ? metaauthor.Author : rssauthor.Name;
                        authoremail = rssauthor == null ? metaauthor.AuthorEmail : rssauthor.Email;
                    }

                    var link = x.Item.Links.FirstOrDefault();
                    var locallink = link == null ? string.Empty : link.Uri.PathAndQuery;
                    var originallink = link == null ? string.Empty : link.Uri.AbsoluteUri;

                    return new BlogPost
                    {
                        Title = x.Item.Title.Text,
                        Summary = x.Item.Summary.Text,
                        Author = authorname,
                        AuthorEmail = authoremail,
                        Localink = locallink,
                        OriginalLink = originallink
                    };

                })
                .Skip(feedCount * pagenum)
                .Take(feedCount)
                .OrderByDescending(x => x.PublishedDate)
                ;

            return data;
        }
开发者ID:horsdal,项目名称:NancyBlog,代码行数:57,代码来源:FeedService.cs

示例10: Search

        public List<Fork> Search(Dictionary<SportType, Dictionary<GameInfo, List<Game>>> games)
        {
            if (games == null)
            {
                throw new ArgumentNullException(nameof(games));
            }

            return games.SelectMany(pair => this.GetForks(pair.Key, pair.Value)).ToList();
        }
开发者ID:ForkerTeam,项目名称:Forker,代码行数:9,代码来源:ForkSearcherManager.cs

示例11: Job

        public Job(string name, string rowScope, Dictionary<string, List<Column>> capturePathToColumns, TextWriter textWriter)
        {
            _rowScope = rowScope;
            _capturePathToColumn = capturePathToColumns;

            Name = name;
            List<string> columnNames = capturePathToColumns.SelectMany(x => x.Value.Select(y => y.Name)).ToList();
            Writer = new Writer(columnNames, textWriter);
        }
开发者ID:Clafou,项目名称:XmlTablify,代码行数:9,代码来源:Job.cs

示例12: FakeNewsServer

        public FakeNewsServer(Dictionary<int, int[]> channelsByAccount)
        {
            var endDate = DateTime.Now.AddHours(-1);
            var startDate = endDate.AddDays(-40);

            this.channelsByAccount = channelsByAccount;
            var channels = channelsByAccount.SelectMany(ca => ca.Value).Distinct();
            newsByChannel = channels.ToDictionary(c => c,
                                                  c => NewsMaker.MakeSomeNews(c, startDate, endDate, 1,
                                                                              random.Next(100) < 50
                                                                                  ? random.Next(1, 10)
                                                                                  : random.Next(2, 1440)));
        }
开发者ID:johnmensen,项目名称:TradeSharp,代码行数:13,代码来源:FakeNewsServer.cs

示例13: GetPJL

 public static byte[] GetPJL(Dictionary<string, string> jobattribs, Dictionary<string, string> pjlsettings, string language)
 {
     return Encoding.ASCII.GetBytes(
         "\x1B%-12345X".ToArray()
         .Concat("@PJL JOB MODE=PRINTER\r\n")
         .Concat(jobattribs == null ? new char[] { } : jobattribs.SelectMany(kvp => "@PJL SET JOBATTR=\"@".ToArray().Concat(kvp.Key).Concat("=").Concat(kvp.Value).Concat("\"\r\n")))
         .Concat(pjlsettings == null ? new char[] { } : pjlsettings.SelectMany(kvp => "@PJL SET ".ToArray().Concat(kvp.Key).Concat("=").Concat(kvp.Value).Concat("\r\n")))
         .Concat("@PJL ENTER LANGUAGE=")
         .Concat(language)
         .Concat("\r\n")
         .ToArray()
     );
 }
开发者ID:klightspeed,项目名称:CloudPrintProxy,代码行数:13,代码来源:PJLHelper.cs

示例14: TestDetectionEngine

        public void TestDetectionEngine()
        {
            Dictionary<string, IList<ISoundSignalReader>> learningWordSignals = new Dictionary<string, IList<ISoundSignalReader>>();
            Dictionary<string, IList<ISoundSignalReader>> testWordSignals = new Dictionary<string, IList<ISoundSignalReader>>();

            var learningDirectories = Directory.GetDirectories("Sounds\\Learning");
            var testDirectories = Directory.GetDirectories("Sounds\\test");

            foreach (var directory in learningDirectories.Where(item => !item.Contains("catalog")))
            {
                var word = new DirectoryInfo(directory).Name;
                learningWordSignals.Add(word, new List<ISoundSignalReader>());
                var wavFiles = Directory.GetFiles(directory).Select(item => new FileInfo(item)).Where(fItem => fItem.Extension.Contains("wav"));
                foreach (var file in wavFiles)
                {
                    learningWordSignals[word].Add(new WavSoundSignalReader(file.FullName));
                }
            }

            foreach (var directory in testDirectories)
            {
                var word = new DirectoryInfo(directory).Name;
                testWordSignals.Add(word, new List<ISoundSignalReader>());
                var wavFiles = Directory.GetFiles(directory).Select(item => new FileInfo(item)).Where(fItem => fItem.Extension.Contains("wav"));
                foreach (var file in wavFiles)
                {
                    testWordSignals[word].Add(new WavSoundSignalReader(file.FullName));
                }
            }

            var catalogSignals = new List<ISoundSignalReader>();
            catalogSignals.AddRange(learningWordSignals.SelectMany(item => item.Value));

            var codeBook = CodeBookFactory.FromWaves(catalogSignals, EngineParameters.Default);

            var recognitionEngine = new DetectionEngine(codeBook);
            var result = recognitionEngine.Train(learningWordSignals);

            foreach (var word in testWordSignals)
            {
                foreach (var signal in word.Value)
                {
                    string name;
                    var value = recognitionEngine.Recognize(signal, out name);
                    Assert.AreEqual(word.Key, name);

                }
            }
        }
开发者ID:AdamStefan,项目名称:Speech-Recognition,代码行数:49,代码来源:EngineTests.cs

示例15: Process

        /// <summary>
        /// Process the content of Claim files and change to structure we want for Result file
        /// </summary>
        /// <param name="rows">content of claim file</param>
        /// <returns></returns>
        public ProcessClaimFileResult Process(Dictionary<string, Dictionary<int, List<BaseClaimRowMetaData>>> rows)
        {
            if (!rows.Any())
            {
                //We can throw Exception here too, depend on our policies
                return new ProcessClaimFileResult{Exception = new ProcessFileRowNotFoundException() };
            }

            var originYears = rows.SelectMany(r => r.Value.Select(v => v.Key)).Distinct().OrderBy(o => o).ToArray();
            _earliestOriginYear = originYears.First();
            _lastDevelopmentYear = originYears.Last();
            _numberOfDevelopment = _lastDevelopmentYear - _earliestOriginYear + 1;

            var accumulatedTriangle = CalculateAccumulatedTriangle(rows);

            return new ProcessClaimFileResult { EarliestOriginYear = _earliestOriginYear, NumberOfDevelopment = _numberOfDevelopment, AccumulatedTriangle = accumulatedTriangle };
        }
开发者ID:BehnamBahmani,项目名称:TowerWatson,代码行数:22,代码来源:ClaimFileProcessService.cs


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