簡體   English   中英

如何從 IList 中獲取所有元素<object> [0] 索引 LINQ

[英]How take all elements from IList<object> with [0] index LINQ

我在谷歌表中有 3 列,我填寫了它們並希望排除重復的電子郵件。

如何從索引為 0 的IList<object>選擇所有值(有 [0],[1],[2] 索引,我只需要 [0] 索引)。 row[0].ToString() 從谷歌表格中獲取 1 封電子郵件並進行檢查。 但是這種方法對 google api 提出了很多請求,我不知道如何用 1 個請求獲取所有值

IList<IList<object>> values = response.Values;
if (values != null && values.Count > 0)
{   
    foreach (var row in values)
    {
        if (String.Equals(row[0].ToString(), email.Trim(), StringComparison.InvariantCultureIgnoreCase))
        {
            return false;
        }
    }
}

屏幕

使用 LINQ 獲取枚舉的第一個對象的方法是使用.First().FirstOrDefault() 如果你想在 linq 中使用上面的整個代碼,它看起來像

var trimmedEmail = email.Trim();
var result = !values.Any(
v => String.Equals(row.First().ToString(), trimmedEmail , StringComparison.InvariantCultureIgnoreCase));

編輯:應該是any() ,而不是all()

即如果第一列中的所有值都等於trimmedEmail,則result=true,否則result=false。

這可能無助於您的性能問題,因為first()在概念上等同於row[0] 然而,這完全取決於您正在使用的 IList 的實現。 既然你提到了谷歌 API,我會假設這不是一個常規的System.Collections.Generic.List<T>

如果您的問題是網絡調用的數量,那么我建議發布一個新問題,專門詢問如何減少網絡調用的數量,並包括使用的 API 和您進行的特定調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM