<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>clinq Forum Rss Feed</title><link>http://www.codeplex.com/clinq/Thread/List.aspx</link><description>clinq Forum Rss Description</description><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I can tell that nsulikow's answer solves those warning issues. Good job man.&lt;/p&gt;
&lt;/div&gt;</description><author>Natxo</author><pubDate>Wed, 26 Dec 2012 16:41:02 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20121226044102P</guid></item><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Just change Curry.tt so that the for loops start at 17 (because .Net 4 already has the first 16 definitions)&amp;nbsp;&lt;/p&gt;
&lt;div id="_mcePaste" class="mcePaste" style="position: absolute; width: 1px; height: 1px; overflow: hidden; top: 0px; left: -10000px;"&gt;﻿&lt;/div&gt;
&lt;p&gt;namespace System&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;lt;#for(int i=17;i&amp;lt;=20;i++){#&amp;gt;public delegate TResult Func&amp;lt;T1, T2, T3, T4, &amp;lt;#FormatRange("T{0}, ", 5, i); #&amp;gt;TResult&amp;gt;(&amp;lt;#FormatRange("T{0} t{0}", ", ", 1, i);#&amp;gt;);&lt;br /&gt;&amp;nbsp;&amp;lt;#}#&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;lt;#for(int i=17;i&amp;lt;=20;i++){#&amp;gt;public delegate void Action&amp;lt;T1, T2, T3, T4, &amp;lt;#FormatRange("T{0}", ", ", 5, i); #&amp;gt;&amp;gt;(&amp;lt;#FormatRange("T{0} t{0}", ", ", 1, i);#&amp;gt;);&lt;br /&gt;&amp;nbsp;&amp;lt;#}#&amp;gt;&lt;br /&gt;}&lt;/p&gt;&lt;/div&gt;</description><author>nsulikow</author><pubDate>Fri, 17 Aug 2012 22:31:58 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20120817103158P</guid></item><item><title>New Post: Another GroupJoin bug</title><link>http://clinq.codeplex.com/discussions/392079</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Try the following code:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;    public class GroupJoinTestFixture
    {
        public class WrappedString : INotifyPropertyChanged
        {
            public WrappedString(string s)
            {
                Value = s;
            }

            public string Value { get; set; }

            #region Implementation of INotifyPropertyChanged

            public event PropertyChangedEventHandler PropertyChanged;

            #endregion
        }

        [Test]
        public void Test()
        {
            ObservableCollection outer = new ObservableCollection { new WrappedString(&amp;quot;hello&amp;quot;), new WrappedString(&amp;quot;aloha&amp;quot;) };
            ObservableCollection inner = new ObservableCollection { new WrappedString(&amp;quot;hello&amp;quot;), new WrappedString(&amp;quot;aloha&amp;quot;) };
            ReadOnlyContinuousCollection inner2 = inner.Where(ws =&amp;gt; ws.Value != &amp;quot;&amp;quot;);

            ReadOnlyContinuousCollection&amp;gt;&amp;gt; join =
                outer.
                    GroupJoin(inner2,
                              outerItem =&amp;gt; outerItem.Value,
                              innerItem =&amp;gt; innerItem.Value,
                              (outerItem, innerList) =&amp;gt; new RichKeyValuePair&amp;gt;(outerItem, innerList));
            var hasInners =
                join.Where(pair =&amp;gt; pair.Value.Count &amp;gt; 0);
            outer.Clear();
            outer.Add(new WrappedString(&amp;quot;hello&amp;quot;));
            outer.Add(new WrappedString(&amp;quot;aloha&amp;quot;));
            inner.RemoveAt(1);
        }
    }&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;After the last line (inner.RemoveAt(1)) there should be only one item in the hasInners list. But there are two.&lt;/p&gt;
&lt;p&gt;When we clear the outer list, GroupJoinReadOnlyContinuousCollection.OnOuterReset is called. It calls RebuildAll which in turn calls RebuildAllInner. But there's no need to rebuild the _keyToInnerLookup, and doing so creates redundant entries in it.&lt;/p&gt;
&lt;p&gt;The fix is that OnOuterReset should call RebuildAllOuter instead of RebuildAll.&lt;/p&gt;
&lt;/div&gt;</description><author>balexander</author><pubDate>Fri, 17 Aug 2012 19:33:55 GMT</pubDate><guid isPermaLink="false">New Post: Another GroupJoin bug 20120817073355P</guid></item><item><title>New Post: GroupJoin bugs?</title><link>http://clinq.codeplex.com/discussions/357493</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I'm seeing some bad looking behavior in GroupJoin.&lt;/p&gt;
&lt;p&gt;In the constructor, there is:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _outerReferenceTracker = new ReferenceCountTracker&amp;lt;TOuter&amp;gt;(outer);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RebuildAll();&lt;/p&gt;
&lt;p&gt;If the 'outer' list is non-empty, the first line fill _outerReferenceTracker. Then, RebuildAll re-adds everything in _outer. It does not clear _outerReferenceTracker first. The end result is that every item has a reference count of 2.&lt;/p&gt;
&lt;p&gt;An unrelated problem is in RemoveOuter, where there's the line:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;OuterEntry&amp;gt; outersMatchingKey = _keyToOuterLookup[outerEntry.Key];&lt;/p&gt;
&lt;p&gt;It appears to me that _keyToOuterLookup is not being updated when an outer item's key changes. I encountered this when I changed the key of an outer item, and later Removed that outer item. RemoveOuter tries to find the key in _keyToOuterLookup, it's not
 there, and an exception is thrown.&lt;/p&gt;
&lt;p&gt;Even if someone's code doesn't encounter this exception, the fact that items have an extra reference count and key changes are not tracked leads to _outerReferenceTracker and _keyToOuterLookup containing no-longer-used information.&lt;/p&gt;
&lt;/div&gt;</description><author>balexander</author><pubDate>Tue, 29 May 2012 13:59:04 GMT</pubDate><guid isPermaLink="false">New Post: GroupJoin bugs? 20120529015904P</guid></item><item><title>New Post: SortingReadOnlyContinuousCollection - ItemChanged</title><link>http://clinq.codeplex.com/discussions/356131</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;When a property of an&amp;nbsp;item changes, the SortingReadonlyCollection removes it and adds it again at the new position. Two events are sent to any subscriber.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;/p&gt;
&lt;p&gt;Org Code in SortingReadOnlyContinousCollection:&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 OnItemChanged(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 sender, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;INotifyPropertyChanged&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;span style="font-family:Consolas; font-size:x-small"&gt;itemThatChanged) &lt;br&gt;
{&lt;br&gt;
TSource item = (TSource)itemThatChanged;&lt;br&gt;
RemoveItemFromOutput(item);&lt;br&gt;
InsertItemInSortOrder(item);&lt;br&gt;
}&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;The problem occures, when you f.e bind a SortingReadonlyCollection to a grid. You lose the SelectedItem on the grid, as soon the collection gets reorderd - because the item is removed (for a short time) from the ItemsSource.&lt;/p&gt;
&lt;p&gt;I think it would be better to do the removing/adding just within the SortingReadonlyCollection and fire
&lt;strong&gt;one &lt;/strong&gt;CollectionChanged event with the action &lt;strong&gt;Move &lt;/strong&gt;
(like the ObservableCollection&amp;lt;T&amp;gt; does)&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;New
 Code:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;void
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;OnItemChanged(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;object&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 sender, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;INotifyPropertyChanged&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;span style="font-family:Consolas; font-size:x-small"&gt;itemThatChanged) &lt;br&gt;
{&lt;br&gt;
TSource item = (TSource)itemThatChanged;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 oldIndex = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.IndexOf(item);&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;br&gt;
&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.RemoveAt(oldIndex);
&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 newIndex = &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.BinarySearch(item,
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.KeySorter);&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;(newIndex
 &amp;lt; 0) &lt;br&gt;
{&lt;br&gt;
&amp;nbsp; newIndex = ~newIndex;&lt;br&gt;
}&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;br&gt;
this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Output.Insert(newIndex, item);&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;br&gt;
if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt; &lt;span style="font-family:Consolas; font-size:x-small"&gt;
(oldIndex == newIndex)&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&amp;nbsp;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;FireMoveItem(item, newIndex, oldIndex);&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Addidional Method in ReadOnlyContinousCollection:&amp;nbsp;&lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 FireMoveItem(T item, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
 index, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;int&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;span style="font-family:Consolas; font-size:x-small"&gt;oldIndex) &lt;br&gt;
{&lt;br&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;font face="Consolas" size="2"&gt;&lt;/p&gt;
&lt;p&gt;FireCollectionChanged(&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#0000ff; font-size:x-small"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;NotifyCollectionChangedEventArg&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;&lt;span style="font-family:Consolas; color:#2b91af; font-size:x-small"&gt;NotifyCollectionChangedAction&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/font&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;.Move, item, index, oldIndex));
&lt;br&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;span style="font-family:Consolas; font-size:x-small"&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&amp;nbsp;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;</description><author>claudioganahl</author><pubDate>Thu, 17 May 2012 09:25:25 GMT</pubDate><guid isPermaLink="false">New Post: SortingReadOnlyContinuousCollection - ItemChanged 20120517092525A</guid></item><item><title>New Post: Bug in ClearSubscriptions?</title><link>http://clinq.codeplex.com/discussions/353599</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I had a situation where I had one item in an ObservableCollection that was being used in a CLINQ expression. I cleared the ObservableCollection, then re-added that same item. I got an exception in NotifyCollectionChangedMonitor.SubscribeToItem at the line
 that says:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; this.Subscriptions.Add(item, subscriptionTree);&lt;/p&gt;
&lt;p&gt;The exception was that the key already exists, and sure enough, 'item' was already in the Subscriptions dictionary.&lt;/p&gt;
&lt;p&gt;If I changed the Clear of my ObservableCollection to a RemoveAt(0), then re-added the item, CLINQ worked fine.&lt;/p&gt;
&lt;p&gt;When I do the RemoveAt, NotifyCollectionChangedMonitor.UnsubscribeFromItem gets called and it has a line that says:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; this.Subscriptions.Remove(item);&lt;/p&gt;
&lt;p&gt;But if I call Clear instead of RemoveAt, NotifyCollectionChangedMonitor.ClearSubscriptions is called and it does not appear to clear the Subscriptions dictionary.&lt;/p&gt;
&lt;p&gt;Is this a bug?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; Bob Alexander&lt;/p&gt;
&lt;/div&gt;</description><author>balexander</author><pubDate>Wed, 25 Apr 2012 19:10:28 GMT</pubDate><guid isPermaLink="false">New Post: Bug in ClearSubscriptions? 20120425071028P</guid></item><item><title>New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ</title><link>http://clinq.codeplex.com/discussions/273641</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I should also add, we're using Visual Studio 2008 / Visual C++ for its C++/CLI features (among other things). Which it seems CLINQ will support?&lt;/p&gt;&lt;/div&gt;</description><author>mwpowellnm</author><pubDate>Fri, 23 Sep 2011 18:03:31 GMT</pubDate><guid isPermaLink="false">New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ 20110923060331P</guid></item><item><title>New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ</title><link>http://clinq.codeplex.com/discussions/273641</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;This primer looks like as good an introduction as any to demonstrate the issue. I think that basically unlocks what I need to do.&lt;/p&gt;
&lt;p&gt;&lt;a title="The Linq between C# and C++" href="http://weblogs.asp.net/kennykerr/archive/2006/05/11/The-Linq-between-C_2300_-and-C_2B002B00_.aspx"&gt;The Linq between C# and C++&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</description><author>mwpowellnm</author><pubDate>Fri, 23 Sep 2011 17:43:30 GMT</pubDate><guid isPermaLink="false">New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ 20110923054330P</guid></item><item><title>New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ</title><link>http://clinq.codeplex.com/discussions/273641</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;CLINQ'ers,&lt;/p&gt;
&lt;p&gt;I'm sure you get asked this from time to time. Where should a veteran C# .NET LINQ developer begin as a C&amp;#43;&amp;#43;/CLI CLINQ newbie?&lt;/p&gt;
&lt;p&gt;Briefly, I've got some classes in a C&amp;#43;&amp;#43;/CLI library that are exposing some IEnumerable&amp;lt;&amp;gt; results given a Dictionary&amp;lt;&amp;gt; backing field. I would like to ask a series of questions about that dictionary exposed through the enumerations. It seems CLINQ
 a strong viable approach to accomplishing this task?&lt;/p&gt;
&lt;p&gt;Where might I find some documentation? Or I just downloaded the source itself as well. Or for some tutorials? Throughout Codeplex?&lt;/p&gt;
&lt;p&gt;Thanks...&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Michael&lt;/p&gt;
&lt;/div&gt;</description><author>mwpowellnm</author><pubDate>Fri, 23 Sep 2011 17:38:52 GMT</pubDate><guid isPermaLink="false">New Post: Veteran C# .NET LINQ newbie C++/CLI CLINQ 20110923053852P</guid></item><item><title>New Post: WeakPropertyBridge.CheckForUnsubscribe</title><link>http://clinq.codeplex.com/discussions/273071</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I am chasing memory leaks on my app, and noticed there are quite a few related to ReactiveObject. In looking at WeakPropertyBridge.CheckForUnsubscribe, I noticed that calls to it are commented out, and not maitained for a while (they don't compile correctly
 anymore in uncommented). What is the reason for the call to be commented out? Is there any other place in the code that is doing that job? Is doesn't look like it to me...&lt;/p&gt;
&lt;/div&gt;</description><author>PombeirP</author><pubDate>Mon, 19 Sep 2011 14:20:10 GMT</pubDate><guid isPermaLink="false">New Post: WeakPropertyBridge.CheckForUnsubscribe 20110919022010P</guid></item><item><title>New Post: Inserts into a collection are registered as add</title><link>http://clinq.codeplex.com/discussions/269975</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Consider the following query:&lt;/p&gt;
&lt;p&gt;ContinuousItemList = from item in Model.ItemList select new ItemViewModel(item);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now say that there are 5 items in the list. &amp;nbsp;If I execute the following code, the item inserted at index 2 of Model.ItemList appears at the end of the ContinuousItemList. &amp;nbsp;As a result the order across the two lists is not consistent.&lt;/p&gt;
&lt;p&gt;Item item = Model.Items[0];&lt;/p&gt;
&lt;p&gt;Model.Items.RemoveAt(0);&lt;/p&gt;
&lt;p&gt;Model.Items.Insert(2, item)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Am I doing something wrong? &amp;nbsp;Is this a known problem? &amp;nbsp;Is there a workaround?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;-Jeff&lt;/p&gt;
&lt;/div&gt;</description><author>jefflowe7</author><pubDate>Mon, 22 Aug 2011 16:20:19 GMT</pubDate><guid isPermaLink="false">New Post: Inserts into a collection are registered as add 20110822042019P</guid></item><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I too would like to see this happen. We are using this in a .NET 4.0 project, so we ended up making the necessary source changes ourselves.&lt;/p&gt;
&lt;p&gt;For the System.Action issue, we changed the Curry.tt file so that it didn't generate as many variations of the System.Action delegates. I think that was the only thing we had to do to get it compiling under .NET 4.0.&lt;/p&gt;
&lt;p&gt;We've made a couple other tweaks here and there too. I'd prefer not to do so, but there hasn't been a lot of response from the project contributors so far. I'm hoping they are still keeping an eye on this project. If not, maybe the community could pick it up.&lt;/p&gt;
&lt;p&gt;- Nathan&lt;/p&gt;&lt;/div&gt;</description><author>nallenwagner</author><pubDate>Thu, 10 Mar 2011 18:20:33 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20110310062033P</guid></item><item><title>New Post: CLINQ for .NET 4.0</title><link>http://clinq.codeplex.com/discussions/249202</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I'm upgrading my project to .NET 4.0 and, while CLINQ appears to run, it triggers warnings that &amp;quot;The predefined type 'System.Action' is defined in multiple assemblies in the global alias; using definition from 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll'&amp;quot;&lt;/p&gt;
&lt;p&gt;I believe this is caused by ContinuousLinq's references to 3.5's System.Action conflicting with the rest of my project's references to the 4.0 version.&lt;/p&gt;
&lt;p&gt;I tried recompiling ContinuousLinq for 4.0, but that caused a runtime exception in SmartFilterAdapter that I don't know how to solve.&lt;/p&gt;
&lt;p&gt;Are there any plans to recompile and validate CLINQ for .NET 4.0?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; Bob&lt;/p&gt;
&lt;/div&gt;</description><author>rea5245</author><pubDate>Thu, 10 Mar 2011 17:13:39 GMT</pubDate><guid isPermaLink="false">New Post: CLINQ for .NET 4.0 20110310051339P</guid></item><item><title>New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection</title><link>http://clinq.codeplex.com/discussions/229692</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;To me the cleanest option is not adding "using ContinuousLinq" and use it explicitly where you need it:&lt;/p&gt;
&lt;p&gt;
&lt;div style="color: black; background-color: white;"&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; ContinuousLinq.ReadOnlyContinuousCollection&amp;lt;foo&amp;gt; foos;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;</description><author>Natxo</author><pubDate>Tue, 22 Feb 2011 09:28:50 GMT</pubDate><guid isPermaLink="false">New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection 20110222092850A</guid></item><item><title>New Post: Where() on Items that dont implement INotifyPropertyChanged</title><link>http://clinq.codeplex.com/discussions/83769</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hello Lector,&lt;/p&gt;
&lt;p&gt;i have got the same problem.&lt;/p&gt;
&lt;p&gt;i made a small research and it seems that changing the objects used in the where-clause does not end with an Updating of the list as suspected&lt;/p&gt;
&lt;p&gt;i made a small wpf application that demonstrates this. its a WPF App.&lt;/p&gt;
&lt;p&gt;does anyone know if Clinq will get developed any further to support such scenarios ??&lt;/p&gt;
&lt;p&gt;MainWindow.xaml.cs&lt;/p&gt;
&lt;p&gt;
&lt;div style="color: black; background-color: white;"&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; System;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Linq;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Text;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Controls;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Data;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Documents;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Input;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Media;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Media.Imaging;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Navigation;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Windows.Shapes;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;span style="color: blue;"&gt;using&lt;/span&gt; ContinuousLinq;

&lt;span style="color: blue;"&gt;namespace&lt;/span&gt; ClinqTest
{
    &lt;span style="color: gray;"&gt;///&lt;/span&gt; &lt;span style="color: gray;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;
    &lt;span style="color: gray;"&gt;///&lt;/span&gt;&lt;span style="color: green;"&gt; Interaction logic for MainWindow.xaml&lt;/span&gt;
    &lt;span style="color: gray;"&gt;///&lt;/span&gt; &lt;span style="color: gray;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;
    &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;partial&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; MainWindow : Window
    {
        System.Collections.ObjectModel.ObservableCollection&amp;lt;Cow&amp;gt; cowList =
                &lt;span style="color: blue;"&gt;new&lt;/span&gt; System.Collections.ObjectModel.ObservableCollection&amp;lt;Cow&amp;gt;();


        &lt;span style="color: blue;"&gt;public&lt;/span&gt; Cow CompareCow { &lt;span style="color: blue;"&gt;get&lt;/span&gt;; &lt;span style="color: blue;"&gt;set&lt;/span&gt;; }

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; IEnumerable&amp;lt;Cow&amp;gt; CowList
        {
            &lt;span style="color: blue;"&gt;get&lt;/span&gt;
            {
                &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;from&lt;/span&gt; x &lt;span style="color: blue;"&gt;in&lt;/span&gt; cowList &lt;span style="color: blue;"&gt;where&lt;/span&gt; CompareCow == &lt;span style="color: blue;"&gt;null&lt;/span&gt; || x.Name == CompareCow.Name &lt;span style="color: blue;"&gt;select&lt;/span&gt; x;
            }
        }
                
        &lt;span style="color: blue;"&gt;public&lt;/span&gt; MainWindow()
        {
            CompareCow = &lt;span style="color: blue;"&gt;new&lt;/span&gt; Cow(&lt;span style="color: #a31515;"&gt;"Hansi"&lt;/span&gt;);
            InitializeComponent();
        }

        &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Button_Click(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, RoutedEventArgs e)
        {
            cowList.Add(&lt;span style="color: blue;"&gt;new&lt;/span&gt; Cow(newCowsName.Text));
        }
    }

    &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; Cow : INotifyPropertyChanged
    {
        &lt;span style="color: blue;"&gt;public&lt;/span&gt; Cow(&lt;span style="color: blue;"&gt;string&lt;/span&gt; name)
        {
            m_name = name;
        }

        &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; m_name;

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; Name
        {
            &lt;span style="color: blue;"&gt;get&lt;/span&gt;
            {
                &lt;span style="color: blue;"&gt;return&lt;/span&gt; m_name;
            }

            &lt;span style="color: blue;"&gt;set&lt;/span&gt;
            {
                m_name = value;
                &lt;span style="color: blue;"&gt;if&lt;/span&gt; (PropertyChanged != &lt;span style="color: blue;"&gt;null&lt;/span&gt;)
                {
                    PropertyChanged(&lt;span style="color: blue;"&gt;this&lt;/span&gt;, &lt;span style="color: blue;"&gt;new&lt;/span&gt; PropertyChangedEventArgs(&lt;span style="color: #a31515;"&gt;"Name"&lt;/span&gt;));
                }
            }
        }

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;event&lt;/span&gt; PropertyChangedEventHandler PropertyChanged;

        &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;string&lt;/span&gt; ToString()
        {
            &lt;span style="color: blue;"&gt;return&lt;/span&gt; Name;
        }
    }
}

&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;MainWindow.xaml&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;div style="color: black; background-color: white;"&gt;
&lt;pre&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Window&lt;/span&gt; &lt;span style="color: red;"&gt;x:Class&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;ClinqTest.MainWindow&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;
        &lt;span style="color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;
        &lt;span style="color: red;"&gt;xmlns:x&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;
        &lt;span style="color: red;"&gt;Title&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;MainWindow&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Height&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;350&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Width&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;525&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;self&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ListBox&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;listBox&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;ItemsSource&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;{Binding ElementName=self, Path=CowList}&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color: red;"&gt;Name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;newCowsName&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Button&lt;/span&gt; &lt;span style="color: red;"&gt;Content&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;Add Cow&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: red;"&gt;Click&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;Button_Click&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;Filter this cow name&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBlock&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color: red;"&gt;Text&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;{Binding ElementName=self,Path=CompareCow.Name}&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;StackPanel&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;Window&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;&lt;/div&gt;</description><author>ThomasHaller</author><pubDate>Mon, 21 Feb 2011 22:28:27 GMT</pubDate><guid isPermaLink="false">New Post: Where() on Items that dont implement INotifyPropertyChanged 20110221102827P</guid></item><item><title>New Post: vs version</title><link>http://clinq.codeplex.com/Thread/View.aspx?ThreadId=243179</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;Not sure what problems you're having but I had no difficulty in opening and upgrading the project to .net 4.0 in VS 2010 Ultimate&lt;/p&gt;
&lt;/div&gt;</description><author>joshkrak</author><pubDate>Thu, 27 Jan 2011 01:49:17 GMT</pubDate><guid isPermaLink="false">New Post: vs version 20110127014917A</guid></item><item><title>New Post: vs version</title><link>http://clinq.codeplex.com/Thread/View.aspx?ThreadId=243179</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;hello,&lt;/p&gt;
&lt;p&gt;none of the projects that come with clinq will open in vs 2010 ultimate or vs 2008 express, neither .net f 3.5, nor .net f 4 (that's what i've got so far). (and those are no tiny projects to build from scratch). i'm still waitin' for my vs 2008 professional
 kit to download. will that version of vs do the trick? or do you have other suggestions i might try?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;thank you&lt;/p&gt;
&lt;/div&gt;</description><author>stefancelmicsisfa</author><pubDate>Tue, 25 Jan 2011 09:30:23 GMT</pubDate><guid isPermaLink="false">New Post: vs version 20110125093023A</guid></item><item><title>New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection</title><link>http://clinq.codeplex.com/Thread/View.aspx?ThreadId=229692</link><description>&lt;div style="line-height: normal;"&gt;&lt;span style="font-family:Arial,Helvetica,sans-serif; font-size:10pt"&gt;Thanks. That's a nice option. I'll give it a try.&lt;br&gt;
&lt;br&gt;
&lt;div id="x_divSignature"&gt;&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="font-size:10pt; font-family:tahoma,arial,sans-serif"&gt;
&lt;hr size="2" align="center" width="100%"&gt;
&lt;span&gt;&lt;strong&gt;From&lt;/strong&gt;: "ismell" &lt;notifications@codeplex.com&gt;&lt;br&gt;
&lt;strong&gt;Sent&lt;/strong&gt;: Tuesday, October 26, 2010 1:50 PM&lt;br&gt;
&lt;strong&gt;To&lt;/strong&gt;: nathan@alner.net&lt;br&gt;
&lt;strong&gt;Subject&lt;/strong&gt;: Re: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection [clinq:229692]&lt;/span&gt;&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
&lt;p&gt;From: ismell&lt;/p&gt;
&lt;div id="x_ThreadNotificationPostBody"&gt;
&lt;p&gt;One of the things I do is just cast your ObservableCollection to an IList&lt;T&gt;.
&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; collection = &lt;span style="color:blue"&gt;new&lt;/span&gt; ObservableCollection&lt;&lt;span style="color:blue"&gt;string&lt;/span&gt;&gt;();
...
&lt;span style="color:blue"&gt;var&lt;/span&gt; find = ((IList&lt;&lt;span style="color:blue"&gt;string&lt;/span&gt;&gt;)collection).Where(o =&gt; o.BeginsWith(&lt;span style="color:#a31515"&gt;"Hello"&lt;/span&gt;)).OrderBy(o =&gt; o);
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div id="x_ThreadNotificationFooter"&gt;
&lt;p&gt;Read the &lt;a href="http://clinq.codeplex.com/Thread/View.aspx?ThreadId=229692&amp;ANCHOR#Post512858"&gt;
full discussion online&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To add a post to this discussion, reply to this email (&lt;a href="mailto:clinq@discussions.codeplex.com?subject=[clinq:229692]"&gt;clinq@discussions.codeplex.com&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;To start a new discussion for this project, email &lt;a href="mailto:clinq@discussions.codeplex.com"&gt;
clinq@discussions.codeplex.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You are receiving this email because you subscribed to this discussion on CodePlex. You can
&lt;a href="https://clinq.codeplex.com/subscriptions/thread/project/edit"&gt;unsubscribe or change your settings&lt;/a&gt; on codePlex.com.&lt;/p&gt;
&lt;p&gt;Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>nallenwagner</author><pubDate>Tue, 26 Oct 2010 18:24:49 GMT</pubDate><guid isPermaLink="false">New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection 20101026062449P</guid></item><item><title>New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection</title><link>http://clinq.codeplex.com/Thread/View.aspx?ThreadId=229692</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;One of the things I do is just cast your ObservableCollection to an IList&amp;lt;T&amp;gt;.
&lt;br&gt;
&lt;/p&gt;
&lt;div style="color:black; background-color:white"&gt;
&lt;pre&gt;&lt;span style="color:blue"&gt;var&lt;/span&gt; collection = &lt;span style="color:blue"&gt;new&lt;/span&gt; ObservableCollection&amp;lt;&lt;span style="color:blue"&gt;string&lt;/span&gt;&amp;gt;();
...
&lt;span style="color:blue"&gt;var&lt;/span&gt; find = ((IList&amp;lt;&lt;span style="color:blue"&gt;string&lt;/span&gt;&amp;gt;)collection).Where(o =&amp;gt; o.BeginsWith(&lt;span style="color:#a31515"&gt;&amp;quot;Hello&amp;quot;&lt;/span&gt;)).OrderBy(o =&amp;gt; o);
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;/div&gt;</description><author>ismell</author><pubDate>Tue, 26 Oct 2010 17:49:53 GMT</pubDate><guid isPermaLink="false">New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection 20101026054953P</guid></item><item><title>New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection</title><link>http://clinq.codeplex.com/Thread/View.aspx?ThreadId=229692</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I would like to suggest that the extension methods which extend ObservableCollection, could be removed or relocated to a separate namespace. This would allow me to have continuous linq based statements in the same class as BCL System.Linq queries. As it stands, I'm not sure how to do this. Once I add &amp;quot;using ContinuousLinq&amp;quot;, all of my queries go through the Clinq extensions.&lt;/p&gt;
&lt;p&gt;Sometimes, I don't want things going through Clinq. One example is when an expression includes a lambda delegate. In this case, Clinq throws an exception indicating that it doesn't support lambdas.&lt;/p&gt;
&lt;p&gt;The AsReadOnly extension method could provide the &amp;quot;opt in&amp;quot;, allowing me to control which queries should be continuous and which should be standard queries.&lt;/p&gt;
&lt;p&gt;If the ObservableCollection extensions were removed, then users would need to add AsReadonly() to a query to get it to use CLINQ. If the extensions were moved to a separate namespace, then the user could still get the &amp;quot;automatic&amp;quot; behavior by including another using statement like &amp;quot;using ContinuousLinq.Auto&amp;quot; or something like that.&lt;/p&gt;
&lt;p&gt;Are there downsides or dangers to such a change? Maybe I'm missing something that resulted in the current design decisions.&lt;/p&gt;
&lt;p&gt;Thanks.&lt;/p&gt;&lt;/div&gt;</description><author>nallenwagner</author><pubDate>Tue, 05 Oct 2010 17:01:17 GMT</pubDate><guid isPermaLink="false">New Post: Suggestion - Remove or Relocate extension methods that operate on ObservableCollection 20101005050117P</guid></item></channel></rss>