예제 #1
0
        private void SetLinkTargetValues <TInclude>(
            TLinkedSource linkedSource,
            Func <TLink, TInclude> getInclude,
            Func <TLink, TInclude, int, TAbstractLinkTarget> getLinkTargetValue)
        {
            var links = GetLinks(linkedSource);

            _linkTarget.LazyInit(linkedSource, links.Count);

            for (var linkIndex = 0; linkIndex < links.Count; linkIndex++)
            {
                var link = links[linkIndex];
                if (link == null)
                {
                    continue;
                }

                var include = getInclude(link);
                if (include == null)
                {
                    continue;
                }

                _linkTarget.SetLinkTargetValue(
                    linkedSource,
                    getLinkTargetValue(link, include, linkIndex),
                    linkIndex
                    );
            }
        }
예제 #2
0
        private void SetLinkTargetValues <TInclude>(
            TLinkedSource linkedSource,
            Func <TLink, TInclude> getInclude,
            Func <TLink, TInclude, int, TAbstractLinkTarget> getLinkTargetValue)
        {
            var links = GetLinks(linkedSource);

            _linkTarget.LazyInit(linkedSource, links.Count);

            TAbstractLinkTarget GetLinkTargetValueForIndex(int index) => GetLinkTargetValue(links, index, getInclude, getLinkTargetValue);

            for (var linkIndex = 0; linkIndex < links.Count; linkIndex++)
            {
                SetLinkTargetValue(linkedSource, linkIndex, GetLinkTargetValueForIndex);
            }
        }