我正在嘗試根據使用 Linq 從桌子上拉下的 Store Id 上傳檔案。這是我獲取檔案的方式:
var uploadedFiles = Files.OrderByDescending(x => x.LastWriteTime)
.Select(x => new
{
Name = x.Name,
Date = Convert.ToDateTime(x.LastWriteTime).ToString("MM/dd/yyyy")
})
.Where(x => x.Name
.Contains(StoreId.ToString()))
.ToList();
檔案“Name”的格式為“123456789012_12345”,其中 StoreId 是下劃線(“_”)之后的所有內容。此條件基于 StoreId 帶來檔案。但是,它也帶來了比預期更多的檔案,因為它還會查找與檔案名左側匹配的任何內容。如果我將條件更改為“子字串”,則不會回傳任何結果。
.Where(x => x.Name.Substring(0,13)
.Contains(StoreId.ToString()))
.ToList();
我能做些什么來獲得我期望的結果嗎?
謝謝!
uj5u.com熱心網友回復:
那是因為Substringmethod 會回傳名稱的左側部分。
var str = "123456789012_12345";
var str2 = str.Substring(0, 13);
Console.WriteLine(str2); // 123456789012_
你可以試試:
var str2 = str.Substring(13, str.Length - 13);
或者
var str2 = str.Split('_')[1];
或者
.Where(x => x.Name.EndsWith($"_{StoreId}"));
uj5u.com熱心網友回復:
我會用這個,因為 13 不是可靠的數字,它可以改變
var storeId = StoreId.ToString();
....
.Where(x => x.Name.Substring(x.Name.IndexOf("_") 1) == storeId)
.ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/360549.html
