我在下面的代码中从 R.WorksheetColumn() 获取资源泄漏。非常感谢任何帮助。
var columns = (from R in RowCellsUsed
select new
{
Column = R.WorksheetColumn().ColumnLetter(),
Name = R.Value.ToString().Trim()
}).ToDictionary(s => s.Name, s => s.Column);
在这种情况下,如何消除资源泄漏。 我如何在 linq 中调用 R.WorksheetColumn().Dispose?
您需要处置实现
IDisposable
的对象。 using
语句通常是执行此操作的最佳方法。如果 R.WorksheetColumn()
返回一个一次性物品,你可以这样做:
var columns = RowCellsUsed
.Select(r => {
using (var column = r.WorksheetColumn())
{
var columnLetter = column.ColumnLetter();
var name = r.Value.ToString().Trim();
return new
{
Column = columnLetter,
Name = name
};
}
})
.ToDictionary(
s => s.Name,
s => s.Column
);