很長時間沒有linq了,
除了知道linq外,
基本上都忘了。
昨天快下班時,
乙個專案要統計圖中的圖塊(blockreference)數量及位置資訊,
開始還想自己寫排序及分組的**,
忽然想到可以使用linq,
這使得**簡單了很多很多。
//使用linq排序、分組完整**如下:var group = from blk in blks
orderby blk.name,blk.position.x,blk.position.y,blk.position.z
group blk by blk.name;
大部分**是插入autocad**的,
如果把資訊輸出到命令列,
**會少很多。
**的列寬,
我是統計每一列文字的長度得出的,
所以**顯得複雜了些。
using system;結果如下:using system.collections.generic;
using system.linq;
using autodesk.autocad.databaseservices;
using autodesk.autocad.editorinput;
namespace modelingtools
//選擇要統計的塊
//這裡用過設定過濾器,我的圖里沒有物件,所以給省略了
promptselectionoptions pso = new promptselectionoptions();
pso.messageforadding = "\n選擇塊";
promptselectionresult psr = ed.getselection(pso);
if (psr.status != promptstatus.ok) return;
//拾取**插入點
//建立**
autodesk.autocad.databaseservices.table table
= new autodesk.autocad.databaseservices.table();
//設定**樣式
table.setsize(2, 5);
table.cells.textheight = textheigt;
table.rows[0].height = textheigt * 3;
table.rows[0].textheight = textheigt + 1;
table.rows[1].height = textheigt * 2;
table.rows[1].textheight = textheigt + 0.5;
//**名稱
table.cells[0, 0].textstring = "主要喬木統計表";
table.rows[0].borders.top.isvisible = false;
table.rows[0].borders.left.isvisible = false;
table.rows[0].borders.right.isvisible = false;
//標題行
table.cells[1, 0].textstring = "名稱";
table.cells[1, 1].textstring = "x";
table.cells[1, 2].textstring = "y";
table.cells[1, 3].textstring = "z";
table.cells[1, 4].textstring = "數量";
//拾取**插入點
//promptpointresult pr = ed.getpoint("\n點取**插入點");
if (pr.status == promptstatus.ok)
else
//獲取塊物件集合
listblks = new list();
using (transaction tr = doc.transactionmanager.starttransaction())
}tr.commit();
}//使用linq排序、分組
var group = from blk in blks
orderby blk.name,blk.position.x,blk.position.y,blk.position.z
group blk by blk.name;
array.foreach(group.toarray(), x =>
);});
using (transaction tr = doc.transactionmanager.starttransaction())
}//獲取文字長度,用來設定**列寬
//對中文貌似不太靈
double gettextlength(string str, double height)
else}}
}
微軟chart控制項,使用還是很方便。
在看圖示控制項大家不由的介紹起這個控制項好那個控制項開源,也沒那麼多的要求去,去研究那麼多控制項莫不如搞定乙個就好。什麼東西使順手就可以。下面介紹下微軟chart控制項,真是不錯。繪製圖示也很方便。view code 1 datatable datatable new datatable buyer...
Virtualbox 修改bios很方便
virtualbox是sun公司的乙個基於gpl的開源軟體,支援windows和linux,可以在虛擬機上安裝的系統有 windows hosts windows xp,all service packs 32 bit windows server 2003 32 bit windows vista...
確實還是字典法方便
好久沒有來充數了,廢話也是要寫寫的。終於稍微嘗到了一點oo的甜頭。因為一直用不好oo,一直逃避,能不用就不用。正則什麼的,都是沒辦法了才用。這次為了頁面和 的簡單易懂,在不重複list的問題上,還是選擇了字典法。apt vs tpt dim dictest as object set dictest...