C# List用法

C# List用法
C# List用法

C# List用法

所属命名空间:System.Collections.Generic

public class List : IList, ICollection, IEnumerable, IList, IColl ection, IEnumerable

List类是ArrayList类的泛型等效类。该类使用大小可按需动态增加的数组实现ILi st泛型接口。

泛型的好处:它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。

性能注意事项:

在决定使用IList还是使用ArrayList类(两者具有类似的功能)时,记住IList 类在大多数情况下执行得更好并且是类型安全的。

如果对IList类的类型T 使用引用类型,则两个类的行为是完全相同的。但是,如果对类型T 使用值类型,则需要考虑实现和装箱问题。

“添加到 ArrayList 中的任何引用或值类型都将隐式地向上强制转换为 Object。如果项是值类型,则必须在将其添加到列表中时进行装箱操作,在检索时进行取消装箱操作。强制转换以及装箱和取消装箱操作都会降低性能;在必须对大型集合进行循环访问的情况下,装箱和取消装箱的影响非常明显。”

1、 List的基础、常用方法:

声明:

1、List mList = new List();

T为列表中元素类型,现在以string类型作为例子

E.g.: List mList = new List();

2、List testList =new List (IEnumerable collection);

以一个集合作为参数创建List

E.g.:

string[] temArr = { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu " };

List testList = new List(temArr);

添加元素:

1、 List. Add(T item) 添加一个元素

E.g.: mList.Add("John");

2、List. AddRange(IEnumerable collection) 添加一组元素

E.g.:

string[] temArr = { "Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu " };

mList.AddRange(temArr);

3、Insert(int index, T item); 在index位置添加一个元素

E.g.: mList.Insert(1, "Hei");

遍历List中元素:

foreach (T element in mList) T的类型与mList声明时一样

{

Console.WriteLine(element);

}

E.g.:

foreach (string s in mList)

{

Console.WriteLine(s);

}

删除元素:

1、 List. Remove(T item) 删除一个值

E.g.: mList.Remove("Hunter");

2、 List. RemoveAt(int index); 删除下标为index的元素

E.g.: mList.RemoveAt(0);

3、 List. RemoveRange(int index, int count);

从下标index开始,删除count个元素

E.g.: mList.RemoveRange(3, 2);

判断某个元素是否在该List中:

List. Contains(T item) 返回true或false,很实用

E.g.:

if (mList.Contains("Hunter"))

{

Console.WriteLine("There is Hunter in the list"); }

else

{

mList.Add("Hunter");

Console.WriteLine("Add Hunter successfully.");

}

给List里面元素排序:

List. Sort () 默认是元素第一个字母按升序

E.g.: mList.Sort();

给List里面元素顺序反转:

List. Reverse () 可以与List. Sort ()配合使用,达到想要的效果

E.g.: mList.Sort();

List清空:List. Clear ()

E.g.: mList.Clear();

获得List中元素数目:

List. Count () 返回int值

E.g.:

int count = mList.Count();

Console.WriteLine("The num of elements in the list: " +count);

2、 List的进阶、强大方法:

举例用的List:

string[] temArr = { Ha","Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", " "Locu " };

mList.AddRange(temArr);

List.Find 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的第一个匹配元素。

public T Find(Predicate match);

Predicate是对方法的委托,如果传递给它的对象与委托中定义的条件匹配,则该方法返回 t rue。当前 List 的元素被逐个传递给Predicate委托,并在 List 中向前移动,从第一个元素开始,到最后一个元素结束。当找到匹配项时处理即停止。

Predicate 可以委托给一个函数或者一个拉姆达表达式:

委托给拉姆达表达式:

E.g.:

string listFind = mList.Find(name => //name是变量,代表的是mList

{ //中元素,自己设定

if (name.Length > 3)

{

return true;

}

return false;

});

Console.WriteLine(listFind); //输出是Hunter

委托给一个函数:

E.g.:

string listFind1 = mList.Find(ListFind); //委托给ListFind函数

Console.WriteLine(listFind); //输出是Hunter

ListFind函数:

public bool ListFind(string name)

{

if (name.Length > 3)

{

return true;

}

return false;

}

这两种方法的结果是一样的。

List.FindLast 方法:搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List 中的最后一个匹配元素。

public T FindLast(Predicate match);

用法与List.Find相同。

List.TrueForAll方法:确定是否List中的每个元素都与指定的谓词所定义的条件相匹配。

public bool TrueForAll(Predicate match);

委托给拉姆达表达式:

E.g.:

bool flag = mList.TrueForAll(name =>

{

if (name.Length > 3)

{

return true;

}

else

{

return false;

}

}

);

Console.WriteLine("True for all: "+flag); //flag值为false

委托给一个函数,这里用到上面的ListFind函数:

E.g.:

bool flag = mList.TrueForAll(ListFind); //委托给ListFind函数Console.WriteLine("True for all: "+flag); //flag值为false

这两种方法的结果是一样的。

List.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素。public List FindAll(Predicate match);

E.g.:

List subList = mList.FindAll(ListFind); //委托给ListFind函数 foreach (string s in subList)

{

Console.WriteLine("element in subList: "+s);

}

这时subList存储的就是所有长度大于3的元素

List.Take(n):获得前n行返回值为IEnumetable,T的类型与List的类型一样

E.g.:

IEnumerable takeList= mList.Take(5);

foreach (string s in takeList)

{

Console.WriteLine("element in takeList: " + s);

}

这时takeList存放的元素就是mList中的前5个

List.Where方法:检索与指定谓词所定义的条件相匹配的所有元素。跟List.FindAll方法类似。

E.g.:

IEnumerable whereList = mList.Where(name =>

{

if (name.Length > 3)

{

return true;

}

else

{

return false;

}

});

foreach (string s in subList)

{

Console.WriteLine("element in subList: "+s);

}

这时subList存储的就是所有长度大于3的元素

List.RemoveAll方法:移除与指定的谓词所定义的条件相匹配的所有元素。public int RemoveAll(Predicate match);

E.g.:

mList.RemoveAll(name =>

{

if (name.Length > 3)

{

return true;

}

else

{

return false;

}

});

foreach (string s in mList)

{

Console.WriteLine("element in mList: " + s);

}

这时mList存储的就是移除长度大于3之后的元素。

List 是一个泛型链表...T表示节点元素类型

比如

List intList;表示一个元素为int的链表

intList.Add(34); //添加

intList.Remove(34);//删除

intList.RemoveAt(0); //删除位于某处的元素

intList.Count; //链表长度

还有Insert,Find,FindAll,Contains等方法,也有索引方法 intList[0] = 23;

1.减少了装箱拆箱

2.便于编译时检查数据类型

List 就相当于 System.Collections命名空间里面的List

古汉语中“相”和“见”的特殊用法

古汉语中“相”和“见”的特殊用法 在古汉语中,常常可以看到两个具有指代作用的副词,就是“相”和“见”。它们在具体的语言环境中,具有指代动作行为受事者的作用。这一用法,多见于汉以后的文献中。现分述如下: 相 “相”可以称代三种人(物)称。例如: 1.今王与耳旦暮且死,而公拥兵百万,不肯相救。(《史记?张耳陈余列传》)这句的意思是:现在大王和我早晚之间就要死去,可是你拥有几万士兵,不肯救我。 2.本是同根生,相煎何太急!(《世说新语?文学》)曹植《七步诗》的这两句的意思是:本来是从一条根上长出来的,煎熬我怎么这么急迫! 3.汝知悔过伏罪,今一切相赦。(《后汉书?冯鲂传》)这句的意思是:你知道悔过服罪,现在一切都赦免你。 4.问于愈者多矣,念生之言不志乎利,聊相为言之。(韩愈《答李翊书》)这句的意思是:向我韩愈问的人多,考虑你的话用心不急切为利,姑且为你说这些。 5.登即相许和,便可作婚姻。(《孔雀东南飞》)这两句诗的意思是:现在就立即答应他家(指代太守家)吧,马上成就两家的婚姻。 6.稍出近之,憫然莫相知。(柳宗元《黔之驴》)这句的意思是:渐渐地出来靠近它,提心吊胆地不知道它(是什么东西)。 例1、2两句中的“相”指代第一人称的人,例3、4两句中的“相”指代第二人称的人,例5、6两句中的“相”指代第三人称的人和物。 由上所述,可以明确以下两点有关“相”的用法: 1.各句的“相”都用在动词或介词之前。加点的词,除例4是介词以外,其他全是动词。画浪线的“相”与动词或介词组成的语言单位,类似倒置的动宾短语。"相"的这种用法,从成语中可以看到。如:拔刀相助、倒屣相迎、豆萁相煎、反戈相向、刮目相看、降心相从、解囊相助、士别三日,当刮目相待等。 2.要和范围副词的“相”区别开来。表示范围的副词“相”用在不带宾语的及物动词前,既表示动作行为的施事者,又表示动作行为的受事者,此为"互指"。如:“爷娘闻女来,出郭相扶将”(《木兰诗》)中的“相”是指“爷和娘”,义为互相。表示范围的副词“相”又可表示动作行为一个一个地相继出现。如:“岂非计久长,有子孙相继为王也哉”(《战国策?赵策》)中的“相”是指子子孙孙一代接一代,此为“递指”。回顾前文的“相”只表示一方发出的动作行为涉及另一方。由于主语只表示施事,而受事者又不出现,只有用它指代,此为“偏指”。互指和递指的“相”,表示范围,所以叫范围副词,偏指的“相”除了表示动作的单向性以外,即表指代,所以叫指代性副词。 见 "见",作为指代性副词,也和“相”一样,在语言形式上,它是副词作状语,其语意类似宾语。例举如下: 1

螺纹通止规

螺纹通止规 定是:螺纹止规进入螺纹不能超过2.5圈,一般的要实际不得超过2圈,并且用得力度不能大,我们的经验是用拇指和食指轻轻夹持螺纹规以刚好能转动螺纹规的力度为准.力大了就相当于在使用丝锥或牙板了,那样规就用不了几次了. 螺纹通止规 螺纹通止规是适用于标准规定型号的灯头作为灯用附件电光源产品时候的设计和生产、检验的工具设备。 用途 一般用于检验螺纹灯头或灯座的尺寸是否符合标准要求,分别检验螺纹灯头的通规和止规尺寸或灯座的通规或止规尺寸。 工作原理 具体检验要求及介绍详见中国人民国国家标准:GB/T1483.1-2008或 IEC60061-3:2004标准规定容。 操作方法 具体检验要求及介绍详见中国人民国国家标准:GB/T1483.1-2008或 IEC60061-3:2004标准规定容。 通止规

通止规,是量规的一种。作为度量标准,用于大批量的检验产品。 通止规是量具的一种,在实际生产批量的产品若采取用计量量具(如游标卡尺,千分表等有刻度的量具)逐个测量很费事.我们知道合格的产品是有一个度量围的.在这个围的都合格,所以人们便采取通规和止规来测量. 通止规种类 (一)对统一英制螺纹,外螺纹有三种螺纹等级:1A、2A和3A级,螺纹有三种等级:1B、2B和3B级,全部都是间隙配合。等级数字越高,配合越紧。在英制螺纹中,偏差仅规定1A和2A级,3A级的偏差为零,而且1A和2A级的等级偏差是相等的等级数目越大公差越小,如图所示:1B 2B 3B 螺纹基本中径3A 外螺纹2A 1A 1、1A和1B级,非常松的公差等级,其适用于外螺纹的允差配合。 2、2A和2B级,是英制系列机械紧固件规定最通用的螺纹公差等级。 3、3A和3B级,旋合形成最紧的配合,适用于公差紧的紧固件,用于安全性的关键设计。 4、对外螺纹来说,1A和2A级有一个配合公差,3A级没有。1A级公差比2A级公差大50,比3A级大75,对螺纹来说,2B级公差比2A公差大30。1B级比2B级大50,比3B级大75。 (二)公制螺纹,外螺纹有三种螺纹等级:4h、6h和6g,螺纹有三种螺纹等级:5H、6 H、7H。(日标螺纹精度等级分为I、II、III三级,通常状况下为II级)在公制螺纹中,H 和h的基本偏差为零。G的基本偏差为正值,e、f和g的基本偏差为负值。如图所示:公差G H 螺纹偏差基本中径外螺纹f g h e 1、H是螺纹常用的公差带位置,一般不用作表面镀层,或用极薄的磷化层。G位置基本偏差用于特殊场合,如较厚的镀层,一般很少用。 2、g常用来镀6-9um的薄镀层,如产品图纸要6h的螺栓,其镀前螺纹采用6g的公差带。 3、螺纹配合最好组合成H/g、H/h或G/h,对于螺栓、螺母等精制紧固件螺纹,标准推荐采用6H/6g的配合。 (三)螺纹标记M10×1–5g 6g M10×1–6H 顶径公差代号中径和顶径公差代号(相同)中径公差代号。 通止规是两个量具分为通规和止规.举个例子:M6-7h的螺纹通止规一头为通规(T)如果能顺利旋进被测螺纹孔则为合格,反之不合格需返工(也就是孔小了).然后用止规(Z)如果能顺利旋进被测螺纹孔2.5圈或以上则为不合格反之合格.且此时不合格的螺纹孔应报废,不能进行返工了.其中2.5圈为国家标准,若是出口件最多只能进1.5圈(国际标准).总之通规过止规不过为合格,通规止规都不过或通规止规都过则为不合格。

MFC中List Control控件的使用及实时显示系统时间的方法 .

MFC中List Control控件的使用及实时显示系统时间的方 法 . (一)List Control控件的使用 新近开发了一个摄像机标定的MFC程序,标定完成后期望将求得的摄像机参数直观地显示到应用程序的界面上来。起初的方案是为每一个参数都建立一个Edit控件,并对每一个控件设定一个控制变量,将该变量与相应参数对应起来。这样做是可行的,但当参数众多时比较繁琐。鉴于此,决定在程序中使用List Control控件,将参数以List的形式呈现在界面上。以下是我在基于对话框的MFC程序中添加List Control控件的步骤。 1.新加ListControl 控件,属性中的style属性页下的View选择Report。并设置其对应的控制变量如:m_ListCtrl。 2.初始化,即设置列。 m_ListCtrl.InsertColumn(0,"参数名"); //插入列 m_ListCtrl.InsertColumn(1,"参数值"); m_ListCtrl.InsertColumn(2,"备注"); CRect rect3; m_ListCtrl.GetClientRect(rect3); //获得当前客户区信息m_ListCtrl.SetColumnWidth(0,rect3.Width()/4); //设置

列的宽度。 m_ListCtrl.SetColumnWidth(1,rect3.Width()*2/4); m_ListCtrl.SetColumnWidth(2,rect3.Width()/4); 这部分初始化操作,最好放在对话框类的OnInitDialog()函数里,自动初始化。 3.插入数据 m_ListCtrl.InsertItem(0,"参数1"); //插入第一个数据,即第0条数据。先插入,然后在修改其他的信息。 m_ListCtrl.SetItemText(0,1,"参数1值"); //修改第0条数据的其他信息。 m_ListCtrl.SetItemText(0,2,"无"); SetItemText()函数负责向列表里添加字符串。当需要添加的是非字符串的数据类型时,需要先转换为字符串类型再用SetItemText()完成添加。假设所需要添加的是double 类型的浮点数。 double dbl=1.2345678; char str[16]={0}; sprintf(str, "%lf", dbl); m_ListCtrl.InsertItem(0,"参数1"); m_ListCtrl.SetItemText(0,1,str); //等价于 m_ListCtrl.SetItemText(0,1,“1.2345678”); 需要注意的是用sprintf族函数时,char数组一定要足

螺纹通止规要求螺纹通规通

螺纹通止规要求螺纹通规通,止规止。 但是如果螺纹通规止,说明什么? 螺纹止规通,又说明什么? 我也来说两句查看全部回复 最新回复 ?wpc (2008-11-07 20:11:20) 在牙型正确的前提下螺纹通止规检测螺纹中径 ?lobont (2008-11-08 11:16:32) 对外螺纹而言,螺纹通规是做到中径上偏差,所以能通过就表示产品合格,通不过就表示螺纹做大了,要再修一刀; 螺纹止规做到中径下偏差,所以只能通过2~3牙,如果也通过,就表示外螺纹做小了,产品成为废品 ?qubin8512 (2008-11-18 15:36:05) 螺纹赛规与螺纹环规主要测量螺纹的中径。 ?datafield (2008-11-29 19:12:51) 检具不是万能的,只是方便而已。具体没什么的我有在哪本书上看过,是一本螺纹手册上的。 ?ZYC007 (2009-2-09 20:31:13) 在牙型正确的前提下螺纹通止规检测螺纹中径。 对外螺纹而言,但是如果螺纹通规止,说明螺纹中径大;螺纹止规通,又说明螺纹中径小。 ?WWCCJJ (2009-3-19 09:27:19) 检测的是螺纹的中径,螺纹检测规在检定时,也是检测其中径. ?tanjiren (2009-3-20 22:23:06) 螺纹通止规只能检测螺纹的作用中径,大径和底径等均无法准确测量出来. ?月夜(2009-4-01 21:47:13) 用来测量中径 ?丽萍(2009-4-02 10:11:41)

只能检测工件螺纹的中径 yg196733456 (2009-4-03 09:15:56)原来是测中径的知道了

Control-M简明操作手册

Control-M简明操作手册 本手册仅列出一些重要的操作方法,因时间关系,次要的不在此列出,请参考Control-M用户手册。 1.调度的启停 1.1Control-M/EM启停 用ctem用户登录EM服务器,键入root_menu命令,看到以下菜单: 选择其中的“1 - Activation Menu”,进入子菜单:

即可根据情况启动或停止相应的服务。同时,这个菜单下还可进行EM各服务运行的检查。 1.2Control-M/Server启停 用ctm用户登录Control-M/Server服务器,键入ctm_menu命令,看到以下菜单:

选择其中的“1 - CONTROL-M Manager”,进入子菜单: 根据情况启动或停止相应的服务。同时,这个菜单下还可进行Server运行的检查。1.3Control-M/Agent启停 启动Control-M/Agent:用root用户登录Agent节点,进入Agent安装目录下的ctm/scripts

子目录(如果Server和Agent安装在同一节点上则进入ctm_agent/ctm/scripts目录,下同),并执行start-ag –u ctm。使用root用户启停Agent的原因是只有root才能调用任何一个用户的任何命令。 停止Control-M/Agent:用root用户登录Agent节点,进入Agent安装目录下的ctm/scripts 子目录,并执行shut-ag –u ctm。 2.参数配置 Control-M/EM的参数已在安装过程中设置完毕。 2.1Control-M/Server参数设置 用ctm用户登录Control-M/Server服务器,键入ctm_menu命令,可见以下菜单: 1)选择主菜单中的“6 –Parameter Customization”可查看或设置包括各通讯端口在内的重要参数:

C++ #pragma code_seg用法

#pragma code_seg 格式如: #pragma code_seg( [ [ { push | pop}, ] [ identifier, ] ] [ "segment-name" [, "segment-class" ] ) 该指令用来指定函数在.obj文件中存放的节,观察OBJ文件可以使用VC自带的dumpbin命令行程序,函数在.obj文件中默认的存放节为.text节,如果code_seg 没有带参数的话,则函数存放在.text节中。 push (可选参数)将一个记录放到内部编译器的堆栈中,可选参数可以为一个标识符或者节名 pop(可选参数)将一个记录从堆栈顶端弹出,该记录可以为一个标识符或者节名identifier(可选参数)当使用push指令时,为压入堆栈的记录指派的一个标识符,当该标识符被删除的时候和其相关的堆栈中的记录将被弹出堆栈 "segment-name" (可选参数)表示函数存放的节名 例如: //默认情况下,函数被存放在.text节中 void func1() {// stored in .text } //将函数存放在.my_data1节中 #pragma code_seg(".my_data1") void func2() {// stored in my_data1 } //r1为标识符,将函数放入.my_data2节中 #pragma code_seg(push, r1, ".my_data2") void func3() {// stored in my_data2 } int main() { } 例如 #pragma code_seg(“PAGE”) 作用是将此部分代码放入分页内存中运行。 #pragma code_seg() 将代码段设置为默认的代码段 #pragma code_seg("INIT") 加载到INIT内存区域中,成功加载后,可以退出内存

照相馆的冲突——像、相、象的区别用法

照相馆的冲突 ——像、相、象的区别用法 陕西省镇安县城关小学张鹏程 学校评选校园之星。阿璀被评为礼仪之星,阿璨被评为阅读之星。校园橱窗要张贴他们的照片,妈妈领着他们到照相馆照相,以便给学校提供相片。 两家照相馆毗邻,哥哥要进“照相馆”,妹妹要进“照像馆”。 妹妹眼锐,一眼发现两家之别,嗤嗤笑着说:“呵呵,你进吧,现代通假字先生!” 哥哥虽然眼拙,妹妹一提醒,反应倒挺敏捷:“招牌用字不一样?是呀,哪家错了?” 哥哥想了想,说:“还是写作照相馆对。” 妹妹说:“写作照像馆,也没错啊!” 兄妹相持,谁也说服不了谁。 妈妈说:“国家公布了异形词整理表,其中就有‘照相—照像’,建议使用照相。” 纷争平息了。妹妹还是表示要求得真相。 妈妈一听,顿时来了精神:“真相—真象是一个词,国家语委建议写作‘真相’。要搞清真面目,就得考证象相像三个字。” 阿璀说:“象,我知道。曼谷小象——你看,‘象’的篆体

字的形体多像大象啊!” 妈妈说:“对。大象是陆地上最大的动物,仓颉造字的时候,‘以类象形’,‘象’就是象形字了。先民造‘象’字之后,又根据大象的特征,把一些有形可见的物体、形状、范围、甚至天气变化称为表象、景象、象限、气象等,因此,‘象’指自然界或、物的本来样子。大象很大,人们印象深,但又不易见到,常常谈起大象的样子,就有了‘想象’一词。” 妹妹说:“嗯,我懂了:象形字是先民们对事物的相对简单的模拟描绘,当某些字造出来之后,觉得字的意思不够用,又给他加一些其他部件,构成新字,表示新的意思。‘像’就是这么造出来的。这样的情形:也有你从镜子里看自己的样子,给自己画像,可以写作像片,看哥哥的样子,给他雕像,旅游时,妈妈还会录像摄像。‘像’指用比较、模仿的方法获取事物的样子,也指用光线反射折射获取的相同或相似的样子。‘像’还有好似、如同的意思。” “相,篆文是,我似乎看到一个木匠,睁一只眼闭一只眼,在察视、审视一截木头,看看它能做什么用。”哥哥说。 “我似乎看到一个盲人拄着拐杖在探路。”妹妹说。 “由此可以看出,‘相’是事物的外观形态与事物的内部联系。”妈妈总结说。 “嗯。于是就可以表示对事物作出判断,如‘人不可貌相,海水不可斗量’‘相机而断’;还引申出辅助、帮助,如丞相、宰相,由人和木头的两者的关系引申用于互相。”妈妈补充说。

NPT螺纹以及检测方法详解

N P T螺纹以及检测方法详 解 Prepared on 22 November 2020

一、目的:规范公司技术员,检验员,操作员对NPT螺纹的了解。 二、适用范围:适用于公司任何NPT螺纹类产品,参考资料为通用管螺 纹和国家标准GB/T12716-2011。 三、目录 1、NPT和NPTF介绍 2、螺纹技术参数参数讲解 3、NPT与NPTF加工工艺 4、NPT和NPTF的检测方法 四、内容: NPT和NPTF螺纹介绍 NPT 是 National (American) Pipe Thread 的缩写,属於美国标准的 60 度锥管 密封螺纹,用於北美地区,美国标准为13)通用管螺纹.国家标准可查阅 GB/T12716-2011。NPTF:美制干密封圆锥管螺。NPTF = National Pipe Thread Fine 称之为一般用途的锥管螺纹,这也是我们以前称之为的布氏锥螺纹。NPTF 螺纹称之为干密封式锥管螺纹,它连接密封的原理是在没有润滑剂或密封填 料情况下完全依靠螺纹自身形成密封,设计意图是使内、外螺纹牙的侧面、 牙顶和牙底同时接触,来达到密封的目的。它们两者的牙型角、斜度等指标 都是相同的,关键是牙顶和牙底的削平高度不一样,所以,量规的设计也是 不一样的。NPTF干密封管螺纹的牙形精度比NPT螺纹高,旋合时不用任何 填料,完全依靠螺纹自身形成密封,螺纹间无任何密封介质。干密封管螺纹 规定有较为严格的公差,属精密型螺纹,仅用在特殊场合。这种螺纹有较高 的强度和良好的密封性,在具有薄截面的脆硬材料上采用此螺纹可以减少断 裂现象。NPTF内、外螺纹牙顶与牙底间没有间隙,是过盈配合,而NPT螺 纹是过渡配合。NPTF螺纹主要用于高温高压对密封要求严格的场所。NPT

VC MFC List Control控件的使用

基于对话框的MFC程序中添加List Control控件的步骤。 1.新加ListControl 控件,属性中的style属性页下的View选择Report。并设置其对应的控制变量如:m_ListCtrl。 2.初始化,即设置列。 m_ListCtrl.InsertColumn(0,"参数名"); //插入列 m_ListCtrl.InsertColumn(1,"参数值"); m_ListCtrl.InsertColumn(2,"备注"); CRect rect3; m_ListCtrl.GetClientRect(rect3); //获得当前客户区信息 m_ListCtrl.SetColumnWidth(0,rect3.Width()/4); //设置列的宽度。 m_ListCtrl.SetColumnWidth(1,rect3.Width()*2/4); m_ListCtrl.SetColumnWidth(2,rect3.Width()/4); 这部分初始化操作,最好放在对话框类的OnInitDialog()函数里,自动初始化。 3.插入数据 m_ListCtrl.InsertItem(0,"参数1"); //插入第一个数据,即第0条数据。先插入,然后在修改其他的信息。 m_ListCtrl.SetItemText(0,1,"参数1值"); //修改第0条数据的其他信息。 m_ListCtrl.SetItemText(0,2,"无"); SetItemText()函数负责向列表里添加字符串。当需要添加的是非字符串的数据类型时,需要先转换为字符串类型再用SetItemText()完成添加。假设所需要添加的是double类型的浮点数。 double dbl=1.2345678; char str[16]={0}; sprintf(str, "%lf", dbl); m_ListCtrl.InsertItem(0,"参数1"); m_ListCtrl.SetItemText(0,1,str); //等价于 m_ListCtrl.SetItemText(0,1,“1.2345678”); 需要注意的是用sprintf族函数时,char数组一定要足够大,否则程序运行时会出现错误提示“ Stack around the variable 'str' was corrupted ”,解决方法是把数组改大一些。 4.删除所有数据。

孔雀东南飞中19个相字的用法归纳

《孔雀东南飞》中19个"相"字的用法归纳《孔雀东南飞》中相”字出现的频率极高,量化统计可知,它共出现了十七次。理解好如此之多的“相”字,不仅有助于同学们较全面地掌握它的多个含义,也有利于对文句的准确把握。鉴此,笔者对其做了分类梳理,下面结合例句加以具体解释。 一、读xiāng,其词性有如下两类: 第一类,作副词,表示彼此对待的关系,译为“互相、相互”,如: ①贱妾留空房,相见常日稀 ②黄泉下相见,勿违今日言 ③枝枝相覆盖,叶叶相交通 ④仰头相向鸣,夜夜达五更 从意思上看,①②的“相见”显然涉及夫妻双方,因而当是互相见面。③中“相覆盖”的是“枝枝”,“相交通”的是“叶叶”,④中“相向鸣”的是“双飞鸟”,它们都涉及多方或双方的行为,因而“相覆盖”译为相互覆盖,“相交通”译为互相交接,“相向鸣”就是面对面哀鸣。 第二类,做人称代词,表示动作所涉及的一方,不可解作“互相”。按照人称的不同可分为三种: 一是作第一人称代词,可译为“我”。如: ⑤便可白公姥,及时相遣归 ⑥时时为安慰,久久莫相忘 ⑦初七及下九,嬉戏莫相忘 上述三句的⑤⑥句是刘兰芝对焦仲卿说的话,第⑦句是刘兰芝对小姑之言。这里的“相”都不是表示彼此对待的关系,三个句子都表示说话者(刘兰芝)希望对方对待自己(即“相”)的某种态度和行为,“相”均指代说话人。“相遣归”就是把我休回娘家,“莫相忘”就是不要忘记我。 二是作第二人称代词,译为“你”。如: ⑧吾已失恩义,会不相从许。 ⑨不久当归还,还必相迎取 ⑩誓不相隔卿 ⑾不久当还归,誓天不相负 ⑿幸可广问讯,不得便相许 此处的⑧句是焦母回绝儿子求情时说的话,“会不相从许”就是(我)一定不会答应你。⑨⑩⑾句是焦仲卿对刘兰芝所讲的,“相迎取”就是迎接你,“誓不相隔卿”就是发誓不断绝(与)你(的恩情),“不相负”就是不辜负你。⑿句是焦母对媒人所言,“不得便相许”就是(我)不能就答应你。这些句子都表示说话者对待对方(即“相”)的某种态度,“相”都指代听话人。 三是作第三人称代词,可译为“他(她)”。如:⒀勤心养公姥,好自相扶将 ⒁登即相许和,便可作婚姻 ⒂新妇识马声,蹑履相逢迎 ⒃怅然遥相望,知是故人来 上述四句中的“相”分别出现在对话句和叙述句中。⒀是兰芝叮咛小姑要好好侍奉婆母,所谓“相扶将”就是服侍她。⒁是兰芝对兄长的答语,让他赶快答应媒人的婚聘,“相许和”就是答应他(媒人)。⒂⒃是兰芝听到仲卿的马嘶后的反应,

通止规的用法及管理

通止规的用法及管理 1、止规 使用前:应经相关检验计量机构检验计量合格后,方可投入生产现场使用。 使用时:应注意被测螺纹公差等级及偏差代号与环规标识公差等级、偏差代号相同(如M24*1.5-6h与M24*1.5-5g两种环规外形相同,其螺纹公差带不相同,错用后将产生批量不合格品)。 检验测量过程:首先要清理干净被测螺纹油污及杂质,然后在环规与被测螺纹对正后,用大母指与食指转动环规,旋入螺纹长度在2个螺距之内为合格,否则判为不合格品。 2、通规 使用前:应经相关检验计量机构检验计量合格后,方可投入生产现场使用。 使用时:应注意被测螺纹公差等级及偏差代号与环规标识的公差等级、偏差代号相同(如M24*1.5-6h与M24*1.5-5g两种环规外形相同,其螺纹公差带不相同,错用后将产生批量不合格品)。 检验测量过程:首先要清理干净被测螺纹塞规油污及杂质,然后在环规与被测螺纹对正后,用大母指与食指转动环规,使其在自由状态下旋合通过螺纹全部长度判定合格,否则以不通判定。 3、注意事项 在用量具应在每个工作日用校对塞规计量一次。经校对塞规计量超差或者达到计量器具周检期限的环规,由计量管理人员收回、标识隔离并作相应的处理措施。 可调节螺纹环规经调整后,测量部位会产生失圆,此现象由计量修复人员经螺纹磨削加工后再次计量鉴定,各尺寸合格后方可投入使用。 报废环规应标识隔离并及时处理,不得流入生产现场。 4、维护与保养 量具(环规)使用完毕后,应及时清理干净测量部位附着物,存放在规定的量具盒内。生产现场在用量具应摆放在工艺定置位置,轻拿轻放,以防止磕碰而损坏测量表面。 严禁将量具作为切削工具强制旋入螺纹,避免造成早期磨损。可调节螺纹环规严禁非计量工作人员随意调整,确保量具的准确性。环规长时间不用,应交计量管理部门妥善保管。

List+Control中的数据写入Excel表格----+数据库操作法

将List Control中的数据写入Excel表格---- 数据库操作法 CDatabase database; CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动CString sExcelFile,sPath; CString sSql; //获取主程序所在路径,存在sPath中 GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH); sPath.ReleaseBuffer (); int nPos; nPos=sPath.ReverseFind ('\\'); sPath=sPath.Left (nPos + 1); CString sFileName; CFileDialog fDlg(TRUE, "xls", sPath + "aaaa.xls", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "xls File (*.xls)|*.xls|"); if(fDlg.DoModal()==IDOK) { sFileName = fDlg.GetPathName(); } else return; sExcelFile = sFileName; // 要建立的Excel文件 try { // 创建进行存取的字符串 sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\ ";DBQ=%s",sDriver, sExcelFile, sExcelFile); // 创建数据库(既Excel表格文件) if( database.OpenEx(sSql,CDatabase::noOdbcDialog) ) { // 创建表结构(姓名、年龄) //sSql = "CREATE TABLE Exceldemo (Name TEXT,Age NUMBER)"; sSql = "create table Report (ID AUTOINCREMENT, 省份char(50), 开始时间date," "结束时间date, 宽带用户数Integer, 本周用户数Integer, 本周增长数Integer, 本周注销数Integer, " "本周净增数Integer, 用户渗透率real,收费用户数Integer, 营销增长用户Integer, 营销注销用户Integer," "市场动作char(255),产品情况TEXT)";

C++ #pragma预处理命令

#pragma预处理命令 #pragma可以说是C++中最复杂的预处理指令了,下面是最常用的几个#pragma 指令: #pragma comment(lib,"XXX.lib") 表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样。 #pragma comment(linker,"/ENTRY:main_function") 表示指定链接器选项/ENTRY:main_function #pragma once 表示这个文件只被包含一次 #pragma warning(disable:4705) 表示屏蔽警告4705 C和C++程序的每次执行都支持其所在的主机或操作系统所具有的一些独特的特点。例如,有些程序需要精确控制数据存放的内存区域或控制某个函数接收的参数。#pragma为编译器提供了一种在不同机器和操作系统上编译以保持C和C++完全兼容的方法。#pragma是由机器和相关的操作系统定义的,通常对每个编译器来说是不同的。 如果编译器遇到不认识的pragma指令,将给出警告信息,然后继续编译。Microsoft C and C++ 的编译器可识别以下指令:alloc_text,auto_inline,bss_seg,check_stack,code_seg,comment,component,conform,const_seg,data_seg,deprecated,fenv_access,float_control,fp_contract,function,hdrstop,include_alias,init_seg,inline_depth,inline_recursion,intrinsic,make_public,managed,message,omp,once,optimize,pack,pointers_to_members,pop_macro,push_macro,region, endregion,runtime_checks,section,setlocale,strict_gs_check,unmanaged,vtordisp,warning。其中conform,init_seg, pointers_to_members,vtordisp仅被C++编译器支持。 以下是常用的pragma指令的详细解释。 1.#pragma once。保证所在文件只会被包含一次,它是基于磁盘文件的,而#ifndef 则是基于宏的。

偏指副词“相”“见”用法探微

偏指副词“相”“见”用法探微 古汉语中,作为副词的“相”和“见”用于动词前,有时表示动作行为只涉及一方,或动作只从单方面发出,有称代作用。 1. “相”用于动词前,可指代第一、二、三人称,相当于“你”“我”“他”“它”等。例如: ①“便可白公姥,及时相遣归。”此句中的“相”可释义为“我”。 ②“吾已失恩义,会不相从许。”此句中的“相”可释义为“你”。 ③“勤心养公姥,好自相扶将。”此句中的“相”可释义为“她”。 ④“登即相许和,便可作婚姻。”此句中的“相”可释义为“它”。 2. “见”则用于及物动词之前,有称代动作行为的受事者的作用(称代前置的宾语),而且句中要出现动作行为的施事者(主动者)。一般只能指代第一人称,可译作“我”或者“自己”。例如: ①兰芝初还时,府吏见丁宁。(《孔雀东南飞》) 此句中“见丁宁”即“丁宁我”之意。 ②君既若见录,不久望君来。(《孔雀东南飞》) 这里的“见录”意思即为“记得我”。 ③冀君实或见恕也。(《答司马谏议书》) 此句中“见恕”可译为“宽恕我”。 (1)翻译下面句子,注意“相”的用法。 ①今王与耳旦暮且死,而公拥兵数万,不肯相救。《史记·张耳陈馀列传第二十九》 ②不久当还归,誓天不相负。(《孔雀东南飞》) ③苟富贵,勿相忘。(《陈涉世家》) ④本是同根生,相煎何太急?(《七步诗》) ⑤穆居家数年,在朝诸公多有相推荐者。(《后汉书·朱乐何列传》)

⑥一年三百六十日,风刀霜剑严相逼。(《红楼梦》第二十七回) (2)翻译下面句子,注意“见”的用法。 ①生孩六月,慈父见背。(《陈情表》) ②吾相遇甚厚,何以见负?《晋书·列传第五十九》) ③凡举事无为亲厚者所痛,而为见仇者所快。(《与彭宠书》) ④岳父见教的是。(《儒林外史》) ⑤张祖希若欲相识,自应见诣。(《世说新语》) ⑥“见谅”“见告”“见怪”。 参考答案: (1)①现在大王和张耳很快将要死了,然而您拥有数万军队,却不肯救我。 ②不久一定回来,我对天发誓永远不辜负你。 ③如果有一天我富贵了,我不会忘记你们。 ④你我本来都是同一个根苗生的,煎熬我为什么这样急迫呢? ⑤朱穆在家闲居多年,朝廷上的官员有很多人推荐他。 ⑥一年三百六十天,刀一样的风,剑一样的霜,无情地摧残它(指花枝)。(2)①我生下来才六个月,父亲便丢下我死去。(这里“见背”即“背我”。) ②我对待你很好(非常优厚),你为什么背叛(背离、辜负)我呢? ③做事不要让自己亲近的人感到痛心、而让仇视自己的人感到高兴。 ④岳父大人指教(我)很对。 ⑤张祖希如果想认识我,自然应该来拜访我。 ⑥原谅我、告知我、怪罪我。

VC++中listlist的使用方法总结

以下是引自msdn帮助文档(中文是我自己翻译的,错误之处请包涵。): The template class describes an object that controls a varying-length sequence of elements of type T. The sequence is stored as a bidirectional linked list of elements, each containing a member of type T. 本模板类描述了一个对象,这个对象是类型为T的可变长度的序列元素。这个序列采用双向链表的方式存储每一个元素,其中每一个元素的数据流行都是T。 The object allocates and frees storage for the sequence it controls through a protected object named allocator, of class A. Such an allocator object must have the same external interface as an object of template class allocator. Note that allocator is not copied when the object is assigned. 对序列对象的分配和释放操作通过一个受保护的对象allocator进行。这样一个allocator对象必须有相同的外部接口作为一个模板类分配器的对象。注意:当对象被分配之后allocator不能被复制。 List reallocation occurs when a member function must insert or erase elements of the controlled sequence. In all such cases, only iterators or references that point at erased portions of the controlled sequence become invalid. 当一个成员要进行insert或者erase操作时,列表的重新分配操作发生。在这种情况下,只有迭代器或者引用所指向的要删除的对象的指针变为无效。 msdn帮助文档自带的例子 下面为msdn帮助文档中自带的一个例子,该例展示了如何使用迭代器读取列表中的元素和进行插入操作。 #include #include using namespace std ; typedef list LISTINT; void main() { int rgTest1[] = {5,6,7}; int rgTest2[] = {10,11,12}; LISTINT listInt; LISTINT listAnother; LISTINT::iterator i; // Insert one at a time listInt.insert (listInt.begin(), 2); listInt.insert (listInt.begin(), 1); listInt.insert (listInt.end(), 3); // 1 2 3 for (i = listInt.begin(); i != listInt.end(); ++i) cout << *i << ""; cout << endl; // Insert 3 fours listInt.insert (listInt.end(), 3, 4); // 1 2 3 4 4 4 for (i = listInt.begin(); i != listInt.end(); ++i) cout << *i << "";

#pragma data code ICCAVR的使用

#pragma data:code 在Keil中为了节省数据存储器的空间,通过“code”关键字来定义一个数组或字符串将被存储在程序存储器中: uchar code buffer[]={0,1,2,3,4,5}; uchar code string[]="Armoric" ; 而这类代码移值到ICCAVR上时是不能编译通过的。我们可以通过"const" 限定词来实现对存储器的分配: #pragma data:code const unsigned char buffer[]={0,1,2,3,4,5}; const unsigned char string[]="Armoric"; #pragma data:data 注意: 《1》使用ICCAVR6.31时,#pragma data :code ;#pragma data:data ; 这些语法时在"data:cod"、"data:data"字符串中间不能加空格,否则编译不能通过。 《2》const 在ICCAVR是一个扩展关键词,它与ANSIC标准有冲突,移值到其它的编译器使用时也需要修改相关的地方。 在ICCAVR中对数组和字符串的五种不同空间分配: const unsigned char buffer[]={0,1,2,3,4,5}; //buffer数组被分配在程序存储区中 const unsigned char string[]="Armoric" ; //stringp字符串被分配在程序存储区中 const unsigned char *pt //指针变量pt被分配在数据存储区中,指向程序存储区中的字符类型数据 unsigned char *const pt //指针变量pt被分配在程序存储区中,指向数据存储区中的字符类型数据 const unsigned char *const pt //指针变量pt被分配在程序存储区,指向程序存储区中的字符类型数据 unsigned char *pt //指针变量pt被分配在数据存储区中,指向数据存储区中的数据 请问#pragma data:code和#pragma data:data是什么意思? 前者表示:随后的数据将存贮在程序区,即FLASH区,此区只能存贮常量,比如表格之类。

文言虚词“相”“见”的特殊用法

文言虚词“相”“见”的特殊用法 文言学习 0302 1322 文言虚词“相”“见”的特殊用法 分析近几年的高考情况,文言虚词考查不会再过多地纠缠于名词术语,而会想方设法地把对虚词的理解落实到对原文的把握上,出题者越来越重视那些有碍于文章阅读的文言虚词,“相”“见”的一些特殊用法正属此种类型。 “相”充当文言虚词时读作“xiāng”,有两个义项:①[副词],译成“互相”;如:司马迁《廉颇蔺相如列传》:“卒相与欢,为刎颈之交。”②[代词],表示动作偏指一方,或从单方面发出,而非互相的关系。如:《孔雀东南飞》:“新妇识马声,蹑履相逢迎。”其中第二个义项就属是一种比较特殊的用法,正如上例,由于“相”所处的位置是在动词的前面,很多学生会把它翻译成副词“互相”,而实际上,它是代词,是一种宾语前置。如果在翻译时不知道此用法就往往会出错,贺之章的名篇《回乡偶书》中有这样一句话“儿童相见不相识,笑问客从何处来”,此处的“相”字翻译成“互相”是无论如何也解释不通的,而你如果知道“相”的第二种用法,那么问题就会迎刃而解。“相”字的这种用法在课文中的例子还很多,这里就不一一例举了。 “见”充当文言虚词时读作“jiàn”也有两个义项:①表示被动,相当于“被”。如《孟子·尽心下》:“盆成括见杀。”《荆轲刺秦王》中“而燕国见陵之耻除矣。”②放在动词前,表示对自己怎么样。王安石《答司马谏议书》:“冀君实或见恕也。”(冀:希望。君实:司马光。或:或许。恕:原谅)今有熟语“见教”(指教我)“见谅”(原谅我)“见示”“见告”(告知我)。应该说,这两种用法都比较特殊。如果不加以正确掌握,势必会变成文言文理解的障碍。

通止规的用法及管理

通止规的用法及管理 令狐采学 1、止规 使用前:应经相关检验计量机构检验计量合格后,方可投入生产现场使用。 使用时:应注意被测螺纹公差等级及偏差代号与环规标识公差等级、偏差代号相同(如M24*1.56h与M24*1.55g两种环规外形相同,其螺纹公差带不相同,错用后将产生批量不合格品)。 检验测量过程:首先要清理干净被测螺纹油污及杂质,然后在环规与被测螺纹对正后,用大母指与食指转动环规,旋入螺纹长度在2个螺距之内为合格,否则判为不合格品。 2、通规 使用前:应经相关检验计量机构检验计量合格后,方可投入生

产现场使用。 使用时:应注意被测螺纹公差等级及偏差代号与环规标识的公差等级、偏差代号相同(如M24*1.56h与M24*1.55g两种环规外形相同,其螺纹公差带不相同,错用后将产生批量不合格品)。 检验测量过程:首先要清理干净被测螺纹塞规油污及杂质,然后在环规与被测螺纹对正后,用大母指与食指转动环规,使其在自由状态下旋合通过螺纹全部长度判定合格,否则以不通判定。 3、注意事项 在用量具应在每个工作日用校对塞规计量一次。经校对塞规计量超差或者达到计量器具周检期限的环规,由计量管理人员收回、标识隔离并作相应的处理措施。 可调节螺纹环规经调整后,测量部位会产生失圆,此现象由计量修复人员经螺纹磨削加工后再次计量鉴定,各尺寸合格后方

可投入使用。 报废环规应标识隔离并及时处理,不得流入生产现场。 4、维护与保养 量具(环规)使用完毕后,应及时清理干净测量部位附着物,存放在规定的量具盒内。生产现场在用量具应摆放在工艺定置位置,轻拿轻放,以防止磕碰而损坏测量表面。 严禁将量具作为切削工具强制旋入螺纹,避免造成早期磨损。可调节螺纹环规严禁非计量工作人员随意调整,确保量具的准确性。环规长时间不用,应交计量管理部门妥善保管。

相关文档
最新文档