我有這個類的LINQ查詢數據聚合
public class Line
{
public string ConnectionsIndex{get;set;}
}
我的LINQ的問題是,我必須將這些線
var l1 = new Line{ ConnectionsIndex="01,02"};
var l2 = new Line{ ConnectionsIndex="02,03"};
var l3 = new Line{ ConnectionsIndex="01,03"};
聚集到這個
var l4 = new Line{ ConnectionsIndex="01,02,03"};
這是可能做到與Linq?
詳細信息:
的事情是更復雜(至少對我來說),當我補充一點,我有我的集合中的其他項目。
var l5 = new Line (ConnectionsIndex = "02,04");
var l6 = new Line (ConnectionsIndex = "03,06");
,因爲不存在其他行與對03,04,01,04,01,06和02,06
我不知道有沒有很好地解釋它...
在實踐中,想象你擁有一個多邊形的所有點,我想通過給出每個多邊形所有點之間的連接列表來獲得查詢中所有項目的一行。
(我的列表中包含一個以上的多邊形)
有一點不應該被列入的結果,如果沒有連接到所有其他人。
這是我的名單內容的例子:
VAR組=行:
ConnectionsIndex="166,171"
ConnectionsIndex="166,174"
ConnectionsIndex="166,333"
ConnectionsIndex="169,170"
ConnectionsIndex="171,175"
ConnectionsIndex="171,334"
ConnectionsIndex="167,174"
ConnectionsIndex="172,174"
ConnectionsIndex="174,335"
ConnectionsIndex="177,341"
ConnectionsIndex="180,200"
ConnectionsIndex="181,183"
ConnectionsIndex="182,199"
ConnectionsIndex="184,185"
ConnectionsIndex="186,188"
ConnectionsIndex="189,192"
ConnectionsIndex="190,230"
ConnectionsIndex="191,375"
在這份名單中,你有例如166,171和334
更多細節之間的三角.Where(x => x.ConnectionsIndex.Split(',')。Contains(line。ConnectionsIndex.Split(',')[0])|| x。ConnectionsIndex.Split(',')。Contains(line 。ConnectionsIndex.Split(',')[1]))。ToList(); if(group.Count()== 1) { straight_lines.Add(line); } 其他 {// 在這裏,我有一個「工作組」。我想distinc點 }
嗯......恐怕我還是不明白你想要做什麼。你可以舉一些例子(3或4)的輸入集合和所需的輸出嗎? – 2009-09-03 10:47:55
我嘗試了一些東西,但是對於您的示例數據,它給出了 「166,171,174,333,175,334,167,172,335」。你需要確定確切的多邊形? – Botz3000 2009-09-03 12:22:30
我同意需要更多細節。你的價值觀是「x,y」座標,並且你試圖找出所有連接點形成一條線? – MattH 2009-09-03 14:21:29