随着代码码的越多,越来越喜欢C# 的LINQ这个语法糖,用起来是真的爽,奈何记性不行,怕自己一段时间不用会忘记,这里记录一些常用的用法
1 强制转换数组cast 和covertAll
经常用DataGridView,其中从selectRow中提出绑定的对应的DataRow数组。
var selectRowsInView = this.dataGridView.SelectedRows;
DataRow[] rows = Array.ConvertAll<DataGridViewRow, DataRow>(selectRowsInView.Cast<DataGridViewRow>().ToArray(), a => (a.DataBoundItem as DataRowView).Row);
2 排序 orderby
MessageFileList
对象进行排序(升序)。MessageFileList
中有一个CurrentMessage
对象,我们需要根据这个对象中的时间戳,对MessageFileList
排序。
其中,CurrentMessage
可能为null,所以使用??
来指定如果CurrentMessage
为null时,用long.MaxValue
来代替原先的值。
var afterOrder = MessageFileList.OrderBy(a => a.CurrentMessage?.RelatedTimeStamp ?? long.MaxValue).ToList();
3 抽取数据中的某个属性,重新生成队列select
有一个现有的数组SelectedGridItem
,其中SymbolNestGridItem
类中有一个名称为IGridItemData
的变量(属性),我想把这个属性值单独抽出来,做一个数组。
public SymbolNestGridItem[] SelectedGridItem { get; set; }
public IGridItemData[] SelectDatas=> SelectedGridItem.Select(a => a.OriginData).ToArray();
未完待续
版权属于:CraZyMoNk
本文链接:https://blog.peacharc.com/archives/549.html
转载时须注明出处及本声明