我應該如何使用 Lambda 函式撰寫并將其變為一/兩行?
public static SaaSWorkflowMatrix? GetPrevNode(this IList<SaaSWorkflowMatrix> coordinates, string username)
{
try
{
for (int i = 0; i < coordinates.Count; i )
{
if (coordinates[i].UserName == username)
return coordinates[i - 1]; // Need error checking
}
return null;
}
catch (Exception ex)
{
return null;
}
}
我試過這個
return coordinates[coordinates.FirstOrDefault(x => x.UserName == username).currentIndex -1];
但它沒有用
uj5u.com熱心網友回復:
您可以嘗試使用FindIndex方法
var index = coordinates.FindIndex(p => p.UserName == username);
那么如果索引為-1,則串列中不存在與UserName == username
uj5u.com熱心網友回復:
Reverse允許向后迭代,然后上一個成為下一個。
SkipWhile允許迭代直到搜索到元素。
Skip允許迭代到下一個元素(如果列舉被反轉,則為先例)。
coordinates.Reverse().SkipWhile(u => u.UserName != username).Skip(1).First();
uj5u.com熱心網友回復:
嘗試這個
var result = coordinates.FindIndex(i=> i.UserName == username) > 0 ? coordinates[coordinates.FindIndex(i=> i.UserName == username) - 1] : null;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/514877.html
標籤:C#。网
