Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Utils / Helpers.cs / 1305376 / Helpers.cs
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Collections.Generic; using System.Linq.Expressions; namespace System.Dynamic.Utils { // Miscellaneous helpers that don't belong anywhere else internal static class Helpers { internal static T CommonNode(T first, T second, Func parent) where T : class { var cmp = EqualityComparer .Default; if (cmp.Equals(first, second)) { return first; } var set = new Set (cmp); for (T t = first; t != null; t = parent(t)) { set.Add(t); } for (T t = second; t != null; t = parent(t)) { if (set.Contains(t)) { return t; } } return null; } internal static void IncrementCount (T key, Dictionary dict) { int count; dict.TryGetValue(key, out count); dict[key] = count + 1; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Collections.Generic; using System.Linq.Expressions; namespace System.Dynamic.Utils { // Miscellaneous helpers that don't belong anywhere else internal static class Helpers { internal static T CommonNode (T first, T second, Func parent) where T : class { var cmp = EqualityComparer .Default; if (cmp.Equals(first, second)) { return first; } var set = new Set (cmp); for (T t = first; t != null; t = parent(t)) { set.Add(t); } for (T t = second; t != null; t = parent(t)) { if (set.Contains(t)) { return t; } } return null; } internal static void IncrementCount (T key, Dictionary dict) { int count; dict.TryGetValue(key, out count); dict[key] = count + 1; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolboxCategory.cs
- XmlSchemaComplexContent.cs
- DisplayInformation.cs
- NodeFunctions.cs
- MarkupCompiler.cs
- HostingEnvironmentException.cs
- BamlLocalizer.cs
- AQNBuilder.cs
- Transform.cs
- WorkflowInstanceContextProvider.cs
- Buffer.cs
- DataGridViewCell.cs
- BinaryObjectReader.cs
- CompoundFileDeflateTransform.cs
- HtmlTableCellCollection.cs
- ComponentResourceKey.cs
- WebColorConverter.cs
- UpdateCompiler.cs
- OrderByBuilder.cs
- RadioButtonDesigner.cs
- SettingsProperty.cs
- DecoderReplacementFallback.cs
- StatementContext.cs
- AdRotator.cs
- CornerRadius.cs
- ListControlBuilder.cs
- RangeValuePattern.cs
- MobileUserControlDesigner.cs
- ApplicationInfo.cs
- AppearanceEditorPart.cs
- DataObject.cs
- Bidi.cs
- SmtpFailedRecipientsException.cs
- GroupQuery.cs
- PolyBezierSegmentFigureLogic.cs
- ObjectViewFactory.cs
- MergeFilterQuery.cs
- VerificationException.cs
- HostedHttpRequestAsyncResult.cs
- SoapTypeAttribute.cs
- SymDocumentType.cs
- HyperLinkStyle.cs
- TransformerTypeCollection.cs
- ResolveMatchesMessage11.cs
- SaveWorkflowCommand.cs
- RegistryDataKey.cs
- PersonalizationStateQuery.cs
- SizeLimitedCache.cs
- ListViewDataItem.cs
- DataGridTextBox.cs
- CqlQuery.cs
- KnownColorTable.cs
- CompilationPass2Task.cs
- HitTestWithPointDrawingContextWalker.cs
- CompiledXpathExpr.cs
- DockAndAnchorLayout.cs
- ReflectEventDescriptor.cs
- DataGridViewRowConverter.cs
- ContainerUtilities.cs
- IdnMapping.cs
- ItemType.cs
- SqlInfoMessageEvent.cs
- MultitargetingHelpers.cs
- CodeDelegateInvokeExpression.cs
- ExpressionQuoter.cs
- ZoneButton.cs
- OdbcError.cs
- SapiInterop.cs
- iisPickupDirectory.cs
- VerticalAlignConverter.cs
- EventInfo.cs
- XMLUtil.cs
- ExpressionBindingCollection.cs
- BitmapDecoder.cs
- EventHandlersDesigner.cs
- SQLDateTime.cs
- DocumentSequence.cs
- ServerIdentity.cs
- ProfilePropertySettings.cs
- PropertyGroupDescription.cs
- TextSpanModifier.cs
- Validator.cs
- SizeValueSerializer.cs
- ActiveXSerializer.cs
- RootBrowserWindowAutomationPeer.cs
- SHA1CryptoServiceProvider.cs
- MenuItem.cs
- ColorConvertedBitmap.cs
- FileIOPermission.cs
- StringReader.cs
- OAVariantLib.cs
- QilExpression.cs
- Serializer.cs
- HttpValueCollection.cs
- UrlPath.cs
- CompositionTarget.cs
- OdbcReferenceCollection.cs
- MimeXmlImporter.cs
- SqlTriggerContext.cs
- Interfaces.cs