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


C# IReadOnlyList.Last方法代码示例

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


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

示例1: GetInsidePoint

 public static Point GetInsidePoint(IReadOnlyList<Point> points, Box boundingBox)
 {
     var y = (boundingBox.MinY + boundingBox.MaxY) / 2;
     var xIntersections = new List<double>();
     var point1 = points.Last();
     foreach (var point2 in points)
     {
         if ((y > point1.Y) != (y > point2.Y))
         {
             xIntersections.Add((y - point2.Y) * (point1.X - point2.X) / (point1.Y - point2.Y) + point2.X);
         }
         point1 = point2;
     }
     xIntersections.Sort();
     Debugger.BreakWhen(xIntersections.Count == 0 || xIntersections.Count % 2 != 0);
     var x = (boundingBox.MinX + boundingBox.MaxX) / 2;
     var maxDelta = double.NegativeInfinity;
     for (var i = 0; i < xIntersections.Count - 1; i += 2)
     {
         var delta = Math.Abs(xIntersections[i] - xIntersections[i + 1]);
         if (delta > maxDelta)
         {
             x = (xIntersections[i] + xIntersections[i + 1]) / 2;
             maxDelta = delta;
         }
     }
     var point = new Point(x, y);
     #if DEBUG
     Debugger.BreakWhen(!PointInPolygonTest.Contains(points, point));
     #endif
     return point;
 }
开发者ID:rflechner,项目名称:SvgToVectorDrawableConverter,代码行数:32,代码来源:PointInsidePolygonCalculator.cs

示例2: Line

        public Line(
            IReadOnlyList<Frame> frames,
            IReadOnlyList<Ball> bonusBalls)
        {
            if (frames == null)
            {
                throw new ArgumentNullException(nameof(frames));
            }
            if (bonusBalls == null)
            {
                throw new ArgumentNullException(nameof(bonusBalls));
            }

            if (frames.Count != 10)
            {
                throw new ArgumentException("A line must be composed of 10 frames");
            }
            if (frames.Last().IsStrike && bonusBalls.Count != 2)
            {
                throw new ArgumentException("Two bonus balls are required when last frame is strike");
            }
            if (frames.Last().IsSpare && bonusBalls.Count != 1)
            {
                throw new ArgumentException("One bonus ball is required when last frame is spare");
            }

            Frames = frames;
            BonusBalls = bonusBalls;
        }
开发者ID:jakubka,项目名称:Bowling,代码行数:29,代码来源:Line.cs

示例3: Override

 internal bool Override( IActivityMonitor monitor, IReadOnlyList<string> fullPath, ActionConfiguration a )
 {
     var e = fullPath.GetEnumerator();
     if( !e.MoveNext() ) throw new ArgumentException( "Must not be empty.", "fullPath" );
     if( e.Current != _action.Name ) throw new ArgumentException( "Must start with the action name.", "fullPath" );
     if( !e.MoveNext() )
     {
         _action = a;
         _isCloned = false;
         monitor.SendLine( LogLevel.Info, string.Format( "Action '{0}' has been overridden.", a.Name ), null );
         return true;
     }
     ActionCompositeConfiguration parent;
     int idx = FindInComposite( e, out parent );
     if( idx >= 0 )
     {
         Debug.Assert( _action is ActionCompositeConfiguration, "It is a composite." );
         Debug.Assert( _action.IsCloneable, "A composite is cloneable." );
         if( !_isCloned )
         {
             _action = ((ActionCompositeConfiguration)_action).CloneComposite( true );
             monitor.SendLine( LogLevel.Info, string.Format( "Action '{0}' has been cloned in order to override an inner action.", string.Join( "/", fullPath ) ), null );
             _isCloned = true;
             idx = FindInComposite( e, out parent );
         }
         Debug.Assert( parent.Children[idx].Name == fullPath.Last() );
         parent.Override( idx, a );
         monitor.SendLine( LogLevel.Info, string.Format( "Inner action '{0}' has been overridden.", string.Join( "/", fullPath ) ), null );
         return true;
     }
     monitor.SendLine( LogLevel.Error, string.Format( "Action '{0}' not found. Unable to override it.", string.Join( "/", fullPath ) ), null );
     return false;
 }
开发者ID:Invenietis,项目名称:ck-core,代码行数:33,代码来源:ProtoDeclaredAction.cs

示例4: HasVariadic

 internal static bool HasVariadic(IReadOnlyList<Scope> f)
 {
     if (f.Count == 0)
     {
         return false;
     }
     return f.Last().Attribute.HasAnyAttribute(AttributeType.Variadic);
 }
开发者ID:B-head,项目名称:Dreit-prototype,代码行数:8,代码来源:ArgumentSymbol.cs

示例5: EndsWithSimpleNewLine

        private static bool EndsWithSimpleNewLine(IReadOnlyList<SyntaxTrivia> list)
        {
            if (list.Count == 0)
            {
                return false;
            }

            if (list.Last().IsKind(SyntaxKind.EndOfLineTrivia))
            {
                return true;
            }

            if (list.Count > 1 &&
                list[list.Count - 1].IsKind(SyntaxKind.WhitespaceTrivia) &&
                list[list.Count - 2].IsKind(SyntaxKind.EndOfLineTrivia))
            {
                return true;
            }

            return false;
        }
开发者ID:OliverKurowski,项目名称:StylecopCodeFormatter,代码行数:21,代码来源:BraceNewLineRule.cs

示例6: GetSourceFiles

        // The assembly info must be in the last minus 1 position because:
        // - assemblyInfo should be in the end to override attributes
        // - assemblyInfo cannot be in the last position, because last file contains the main
        private static IEnumerable<string> GetSourceFiles(IReadOnlyList<string> sourceFiles, string assemblyInfo)
        {
            if (!sourceFiles.Any())
            {
                yield return assemblyInfo;
                yield break;
            }

            foreach (var s in sourceFiles.Take(sourceFiles.Count() - 1))
                yield return s;

            yield return assemblyInfo;

            yield return sourceFiles.Last();
        }
开发者ID:krytarowski,项目名称:cli,代码行数:18,代码来源:Program.cs

示例7: GetArtworkLinkAsync

        private async Task<Uri> GetArtworkLinkAsync(IReadOnlyList<string> releaseIds)
        {
            using (var client = new HttpClient())
            {
                foreach (string releaseId in releaseIds)
                {
                    string artworkRequestUrl = string.Format(ArtworkEndpoint, releaseId);

                    HttpResponseMessage response;

                    try
                    {
                        response = await client.GetAsync(artworkRequestUrl);

                        // The only valid failure status is "Not Found"
                        if (response.StatusCode == HttpStatusCode.NotFound)
                        {
                            continue;
                        }

                        response.EnsureSuccessStatusCode();
                    }

                    catch (HttpRequestException ex)
                    {
                        string errorInfo = string.Format("Could not download artwork informations for release id {0}", releaseId);

                        // If we can't even get the last artwork, throw
                        if (releaseId == releaseIds.Last())
                        {
                            throw new ArtworkFetchException(errorInfo, ex);
                        }

                        if (releaseIds.Count > 1)
                        {
                            this.Log().Error(errorInfo + ", retrying with next in list.");
                        }

                        continue;
                    }

                    string responseContent = await response.Content.ReadAsStringAsync();
                    JToken artworkUrlToken = JObject.Parse(responseContent).SelectToken("images[0].image");

                    if (artworkUrlToken == null)
                    {
                        continue;
                    }

                    return new Uri(artworkUrlToken.ToObject<string>());
                }
            }

            return null;
        }
开发者ID:hur1can3,项目名称:Espera,代码行数:55,代码来源:MusicBrainzArtworkFetcher.cs

示例8: StalkUpTo

        public MergeResult StalkUpTo(IReadOnlyList<Commit> commits)
        {
            var mergeFiles = new List<String> ();
            var startingCommit = head.Tip;
            var newCommits = new List<Commit> ();
            MergeResult mergeResult = null;
            var mergeOptions = new MergeOptions ();
            var signature = new Signature (userName, userEmail, DateTime.Now);
            //var checkoutOptions = new CheckoutOptions ();
            //			var commitMsg = new List<String> ();

            commitMsg = (String.Format ("Automated Stalker (StalkUpTo) merge commit from: '{0}' to: '{1}' into {2}", commits.First ().Sha.Substring (0, 6), commits.Last ().Sha.Substring (0, 6), head.Tip.Sha.Substring (0, 6)));
            //			Console.WriteLine ("Working on {0} commits", commits.Count);

            var commit = commits.Last ();
            Array.ForEach (CommitLog (commit, true).ToArray(), Console.WriteLine);

            mergeOptions.FastForwardStrategy = FastForwardStrategy.FastForwardOnly;
            mergeOptions.CommitOnSuccess = true;

            //checkoutOptions.CheckoutModifiers = CheckoutModifiers.None;
            try {
                Console.WriteLine ("Merge FF: {0} : {1}", commit.Sha.Substring (0,6), commit.MessageShort);
                mergeResult = repo.Merge (commit, signature, mergeOptions);
                var tmpMsg = mergeResult.Commit.Message;
                var commitOptions = new CommitOptions ();
                commitOptions.AmendPreviousCommit = true;
                repo.Commit (commitMsg + "\n\n" + tmpMsg, signature, commitOptions);
            } catch {
                Console.WriteLine ("Merge FF Failed: CheckoutFileConflictStrategy.Theirs");
                //commitMsg = CommitLog (commit, true, commitMsg);
                // this will happen as libgit2sharp throws ex if fast forward not possible
                // so lets get a commit message ready
                mergeFiles.AddRange (FilesToMerge (commit));

                mergeOptions.FastForwardStrategy = FastForwardStrategy.NoFastForward;
                mergeOptions.FileConflictStrategy = CheckoutFileConflictStrategy.Theirs;
                mergeOptions.CommitOnSuccess = true;
                try {
                    var fgColor = Console.ForegroundColor;
                    var bgColor = Console.BackgroundColor;
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine ("Merging commit : {0}", commit.Sha);
                    Console.WriteLine (" - Info : {0} / {1} / {2}", commit.Author.When, commit.Author.Name, commit.Author.Email);
                    Console.WriteLine (" - Msg : {0}", commit.Message);
                    Console.ForegroundColor = fgColor;
                    Console.BackgroundColor = bgColor;
                    mergeResult = repo.Merge (commit, signature, mergeOptions);
                    var tmpMsg = mergeResult.Commit.Message;
                    var commitOptions = new CommitOptions ();
                    commitOptions.AmendPreviousCommit = true;
                    repo.Commit (commitMsg + "\n\n" + tmpMsg, signature, commitOptions);
                    //Array.ForEach (MergeResultLog (mergeResult).ToArray (), Console.WriteLine);
                } catch (Exception e) {
                    Console.WriteLine (e.Message);
                }
            }
            return mergeResult;
        }
开发者ID:sushihangover,项目名称:ForkStalker,代码行数:59,代码来源:Stalker.cs

示例9: GetAllSubsets

 /// <summary>
 /// Returns an enumeration that contains all subsets of the parameter.
 /// </summary>
 private static IEnumerable<List<int>> GetAllSubsets(IReadOnlyList<int> of)
 {
     var subsets = new List<List<int>>((int)Math.Pow(2, of.Count));
     for (var i = 1; i < of.Count; i++)
     {
         subsets.Add(new List<int>(new[] { of[i - 1] }));
         var i1 = i;
         var newSubsets = subsets.Select(subset => subset.Concat(new[] { of[i1] }).ToList()).ToList();
         subsets.AddRange(newSubsets);
     }
     subsets.Add(new List<int>(new[] { of.Last() }));
     return subsets;
 }
开发者ID:EmmittJ,项目名称:PoESkillTree,代码行数:16,代码来源:NonTerminalsOfDegreeKTest.cs

示例10: FindEnemies

 private bool FindEnemies()
 {
     IEntity enemy = null;
     globalSearcher.StartSearch(Location.Tile, Location.Tile, Math.Max(DetectRange, SightRange), (tile, layer, bundle) =>
     {
         enemy = tile.LayoutManager.Entities.FirstOrDefault(e => RelationManager.IsEnemy(e.RelationManager.RelationToken));
         if (enemy != null)
             globalSearcher.StopSearch();
     });
     if (enemy != null)
     {
         hountingPath = globalSearcher.GetShortestRoute(enemy.Location.Tile);
         $"{this} found enemies at {hountingPath.Last().GridPosition}".Dump();
         return true;
     }
     else
     {
         hountingPath = null;
         return false;
     }
 }
开发者ID:ggrrin,项目名称:DungeonMaster,代码行数:21,代码来源:Creature.cs

示例11: CreateEngineOils

 /// <summary>
 ///     创建发动机滑油监控记录。
 /// </summary>
 /// <remarks>
 ///     对每一台发动机,自滑油监控最后一条记录至当天,每天计算一条监控记录。
 ///     初始的时候,从最近一次装上开始计算。
 /// </remarks>
 /// <param name="lastTSR">最近一次装上记录</param>
 /// <param name="engineReg">发动机</param>
 /// <param name="flights">最近一次装上以来的飞行日志集合</param>
 private List<OilMonitor> CreateEngineOils(SnHistory lastTSR, EngineReg engineReg,
     IReadOnlyList<FlightLog> flights)
 {
     if (lastTSR == null) throw new ArgumentNullException("lastTSR");
     var oilMonitors = new List<OilMonitor>();
     // 开始计算日期
     var startDate = GetStartDate(lastTSR, flights);
     if (!flights.Any()) return oilMonitors;
     // 计算截止日期,飞行日志最后一天的次日,最后一天为当天的则为当天。
     var endDate = flights.Last().FlightDate.Date == DateTime.Today
         ? DateTime.Today
         : flights.Last().FlightDate.Date.AddDays(1);
     while (endDate.Subtract(startDate).TotalDays > 0)
     {
         decimal qsr, interval, deltaInterval, lastInterval;
         var tsr = flights.TakeWhile(f => f.FlightDate < startDate.AddDays(1)).Sum(f => f.FlightHours);
         switch (lastTSR.Position)
         {
             case Position.发动机1:
                 qsr =
                     flights.TakeWhile(f => f.FlightDate < startDate.AddDays(1))
                         .Sum(f => f.ENG1OilDep + f.ENG1OilArr);
                 lastInterval =
                     _unitOfWork.CreateSet<OilMonitor>()
                         .Where(o => o.IntervalRate > 0)
                         .Select(o => o.IntervalRate)
                         .FirstOrDefault();
                 CalIntervalOil(
                     flights.Select(
                         f => Tuple.Create(f.FlightDate, f.TakeOff, f.ENG1OilDep, f.ENG1OilArr, f.FlightHours))
                         .ToList(), startDate, out interval);
                 deltaInterval = lastInterval > 0 ? interval - lastInterval : 0;
                 oilMonitors.Add(CreateEngineOil(lastTSR, engineReg, startDate, tsr, qsr, interval, deltaInterval));
                 break;
             case Position.发动机2:
                 qsr =
                     flights.TakeWhile(f => f.FlightDate < startDate.AddDays(1))
                         .Sum(f => f.ENG2OilDep + f.ENG2OilArr);
                 lastInterval =
                     _unitOfWork.CreateSet<OilMonitor>()
                         .Where(o => o.IntervalRate > 0)
                         .Select(o => o.IntervalRate)
                         .FirstOrDefault();
                 CalIntervalOil(
                     flights.Select(
                         f => Tuple.Create(f.FlightDate, f.TakeOff, f.ENG2OilDep, f.ENG2OilArr, f.FlightHours))
                         .ToList(), startDate, out interval);
                 deltaInterval = lastInterval > 0 ? interval - lastInterval : 0;
                 oilMonitors.Add(CreateEngineOil(lastTSR, engineReg, startDate, tsr, qsr, interval, deltaInterval));
                 break;
             case Position.发动机3:
                 qsr =
                     flights.TakeWhile(f => f.FlightDate < startDate.AddDays(1))
                         .Sum(f => f.ENG3OilDep + f.ENG3OilArr);
                 lastInterval =
                     _unitOfWork.CreateSet<OilMonitor>()
                         .Where(o => o.IntervalRate > 0)
                         .Select(o => o.IntervalRate)
                         .FirstOrDefault();
                 CalIntervalOil(
                     flights.Select(
                         f => Tuple.Create(f.FlightDate, f.TakeOff, f.ENG3OilDep, f.ENG3OilArr, f.FlightHours))
                         .ToList(), startDate, out interval);
                 deltaInterval = lastInterval > 0 ? interval - lastInterval : 0;
                 oilMonitors.Add(CreateEngineOil(lastTSR, engineReg, startDate, tsr, qsr, interval, deltaInterval));
                 break;
             case Position.发动机4:
                 qsr =
                     flights.TakeWhile(f => f.FlightDate < startDate.AddDays(1))
                         .Sum(f => f.ENG4OilDep + f.ENG4OilArr);
                 lastInterval =
                     _unitOfWork.CreateSet<OilMonitor>()
                         .Where(o => o.IntervalRate > 0)
                         .Select(o => o.IntervalRate)
                         .FirstOrDefault();
                 CalIntervalOil(
                     flights.Select(
                         f => Tuple.Create(f.FlightDate, f.TakeOff, f.ENG4OilDep, f.ENG4OilArr, f.FlightHours))
                         .ToList(), startDate, out interval);
                 deltaInterval = lastInterval > 0 ? interval - lastInterval : 0;
                 oilMonitors.Add(CreateEngineOil(lastTSR, engineReg, startDate, tsr, qsr, interval, deltaInterval));
                 break;
             default:
                 throw new ArgumentOutOfRangeException();
         }
         startDate = startDate.AddDays(1);
     }
     return oilMonitors;
 }
开发者ID:unicloud,项目名称:FRP,代码行数:99,代码来源:OilDataProcess.cs

示例12: CreateAPUOils

 /// <summary>
 ///     创建APU滑油监控记录。
 /// </summary>
 /// <remarks>
 ///     对每一台APU,自滑油监控最后一条记录至当天,每天计算一条监控记录。
 ///     初始的时候,从最近一次装上开始计算。
 /// </remarks>
 /// <param name="lastTSR">最近一次装上记录</param>
 /// <param name="apuReg">APU</param>
 /// <param name="flights">最近一次装上以来的飞行日志集合</param>
 /// <returns>滑油监控记录集合。</returns>
 private List<OilMonitor> CreateAPUOils(SnHistory lastTSR, APUReg apuReg, IReadOnlyList<FlightLog> flights)
 {
     var oilMonitors = new List<OilMonitor>();
     // 开始计算日期
     var startDate = GetStartDate(lastTSR, flights);
     if (!flights.Any()) return oilMonitors;
     // 计算截止日期,飞行日志最后一天的次日,最后一天为当天的则为当天。
     var endDate = flights.Last().FlightDate.Date == DateTime.Today
         ? DateTime.Today
         : flights.Last().FlightDate.Date.AddDays(1);
     while (endDate.Subtract(startDate).TotalDays > 0)
     {
         decimal interval;
         var tsr = flights.TakeWhile(f => f.FlightDate < startDate.AddDays(1)).Sum(f => f.FlightHours);
         var qsr = flights.TakeWhile(f => f.FlightDate < startDate.AddDays(1))
             .Sum(f => f.ApuOilDep + f.ApuOilArr);
         var lastInterval =
             _unitOfWork.CreateSet<OilMonitor>()
                 .Where(o => o.IntervalRate > 0)
                 .Select(o => o.IntervalRate)
                 .FirstOrDefault();
         CalIntervalOil(
             flights.Select(f => Tuple.Create(f.FlightDate, f.TakeOff, f.ApuOilDep, f.ApuOilArr, f.FlightHours))
                 .ToList(), startDate, out interval);
         var deltaInterval = lastInterval > 0 ? interval - lastInterval : 0;
         oilMonitors.Add(CreateAPUOil(lastTSR, apuReg, startDate, tsr, qsr, interval, deltaInterval));
         startDate = startDate.AddDays(1);
     }
     return oilMonitors;
 }
开发者ID:unicloud,项目名称:FRP,代码行数:41,代码来源:OilDataProcess.cs


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