C# 有人能告诉我这在林克是否可行吗?

C# 有人能告诉我这在林克是否可行吗?,c#,linq,C#,Linq,所以我一直在工作,努力了几个小时。我正在制作一款泡泡破泡泡游戏。我可以使用for循环或while来完成,但我也尝试着练习使用Linq。下面是我在pesudo代码中尝试做的事情 每个气泡都有一个列和行属性。如果气泡从其列属性中减去一个并找到相同颜色的气泡,则应选择该气泡,然后减去-1,然后查看两个气泡之间是否也存在相同颜色的气泡。如果有,则减去-2,依此类推。所以我想做的是 var test= _theBubbles.TakeWhile((i, s) => i.BubbleColor== b

所以我一直在工作,努力了几个小时。我正在制作一款泡泡破泡泡游戏。我可以使用for循环或while来完成,但我也尝试着练习使用Linq。下面是我在pesudo代码中尝试做的事情

每个气泡都有一个列和行属性。如果气泡从其列属性中减去一个并找到相同颜色的气泡,则应选择该气泡,然后减去-1,然后查看两个气泡之间是否也存在相同颜色的气泡。如果有,则减去-2,依此类推。所以我想做的是

var test= _theBubbles.TakeWhile((i, s) => i.BubbleColor== bubble.BubbleColor)//Then somehow tell it to do bubble.Column-s

然后从bubble.Column中减去s,这样做的目的是一直向下看,直到bubble不一样,让我们假设,
\u theBubbles
是游戏板上所有泡泡的列表。在这种情况下,给定一个特定的起始气泡,您可以使用以下查询来查找给定气泡下面的所有颜色相同的气泡(我假设最下面的一行是第0行):

var bubble=…//一些已知的泡沫
var SameColor气泡低于气泡=
_其中(b=>b.Column==bubble.Column&&
b、 行<气泡。行)
.OrderByDescending(b=>b.行)
.TakeWhile((b,i)=>b.BubbleColor==bubble.BubbleColor);

让我们假设
\u泡泡
是游戏板上所有泡泡的列表。在这种情况下,给定一个特定的起始气泡,您可以使用以下查询来查找给定气泡下面的所有颜色相同的气泡(我假设最下面的一行是第0行):

var bubble=…//一些已知的泡沫
var SameColor气泡低于气泡=
_其中(b=>b.Column==bubble.Column&&
b、 行<气泡。行)
.OrderByDescending(b=>b.行)
.TakeWhile((b,i)=>b.BubbleColor==bubble.BubbleColor);

您需要更好地定义泡泡
集合包含的内容,以获得好的答案。它是一列吗?整个气泡网格?您需要更好地定义气泡集合所包含的内容,才能得到一个好的答案。它是一列吗?整个泡沫网格?好的,谢谢,这正是我想要的。我想虽然我没有想到这一点,因为这一排的气泡可能有气泡,那么这些气泡可能有更多的气泡。好的,谢谢,这就是我想要的。我想虽然我没有想到这一点,因为这一排中的气泡可能有气泡在其一侧,那么这些气泡可能有更多的气泡。
var bubble = ... // some known bubble
var sameColorBubblesBelowTheBubble =
     _theBubbles.Where( b => b.Column == bubble.Column &&
                        b.Row < bubble.Row )
                .OrderByDescending( b => b.Row )
                .TakeWhile( (b,i) =>  b.BubbleColor == bubble.BubbleColor );