随着代码码的越多,越来越喜欢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();

未完待续

Last modification:November 5, 2020
如果觉得文章对你有用,请随意赞赏