iT邦幫忙

0

C# 問題請教

 result[i][j] = year + "/" + month + "/" + d +"&"+ weekArray[(d - 1 + wDay) % 7];

這是我一個二維陣列,最後會顯示年月日
https://ithelp.ithome.com.tw/upload/images/20190620/20110132UShBzgLKMD.jpg

  var DrEmpList = dto.Where(x => x.SCH_DATE ==).FirstOrDefault();

這是我一個LIST,我希望能把二維陣列裡的日期加入我這個LIST的
判斷裡,請問這個該如何實現呢?

舜~ iT邦新手 1 級 ‧ 2019-06-20 16:07:19 檢舉
SCH_DATE 是 DateTime 還是 字串??
0
Ks
iT邦新手 4 級 ‧ 2019-06-20 16:22:41
最佳解答

不確定這是不是你想要的~稍微做了一個範例,可以參考看看

/images/emoticon/emoticon05.gif

https://dotnetfiddle.net/GiiwsF

這裏的日期比對方式也不錯,可以考慮試試看
There is also EntityFunctions.TruncateTime or DbFunctions.TruncateTime in EF 6.0

https://stackoverflow.com/questions/13510849/linq-where-clause-compare-only-date-value-without-time-value

看更多先前的回應...收起先前的回應...
tenno081 iT邦新手 4 級 ‧ 2019-06-20 16:41:33 檢舉

感謝回答,只是我目前最大的問題是要怎麼從陣列裡取出來

這是我實際上的功能,然後分割部分

我前端可以成功分割,可是在我那方法裡卻不行@@

https://ithelp.ithome.com.tw/questions/10194134

Ks iT邦新手 4 級 ‧ 2019-06-20 16:53:09 檢舉

請問你說的 分割 和那方法 是指哪裡一部分?
/images/emoticon/emoticon10.gif

tenno081 iT邦新手 4 級 ‧ 2019-06-20 16:58:12 檢舉

https://ithelp.ithome.com.tw/upload/images/20190620/201101320hkPoO2Njb.jpg
就是這個

我在前端這樣做

https://ithelp.ithome.com.tw/upload/images/20190620/20110132clcyeogz1Y.jpg

就變成說

@arr[0] =2019/6/1
@arr[1] = 6

Ks iT邦新手 4 級 ‧ 2019-06-20 17:08:59 檢舉

所以你的問題是後端的部分,這麼做.Split("&");是不行嗎?
有什麼錯誤訊息?
string[] splitDt = datetimeString.Split("&");

因為我不確定你的陣列是在哪裡一部分,return result是前端還是後端的程式碼?

然後就是你現在是要把前端的陣列傳去後端,但是不知道怎麼取出來還是怎樣,有點混亂?

可能不清楚的情況下沒辦法幫到你
抱歉喔
/images/emoticon/emoticon06.gif

tenno081 iT邦新手 4 級 ‧ 2019-06-20 17:20:20 檢舉

錯誤大概是這樣
https://ithelp.ithome.com.tw/upload/images/20190620/20110132UkkAnZ4GlG.jpg

Ks iT邦新手 4 級 ‧ 2019-06-20 17:30:41 檢舉
result[i][j] = year + "/" + month + "/" + d +"&"+ weekArray[(d - 1 + wDay) % 7];

這段程式碼就代表設定這個值給result[i][j]這個多維陣列了,
之後你在又把這個result[i][j]設定給code變數

var code = result[i][j];

你可以先檢查code的類別是不是string,
不是的話,你就設定他為

string code = result[i][j]
或
var code = (string)result[i][j]

這裏的錯誤問題是你直接針對result整個陣列來做split了,
你應該指定result[i][j]或code來做split

再麻煩試試看
/images/emoticon/emoticon08.gif

小魚 iT邦高手 1 級 ‧ 2019-06-20 17:44:34 檢舉

result不是字串,
當然不能Split.

tenno081 iT邦新手 4 級 ‧ 2019-06-20 17:59:23 檢舉

感謝您耐心的解說,這是我目前遇到的

https://ithelp.ithome.com.tw/upload/images/20190620/20110132MLqFVyAKiH.jpg

我更正一下,return result應該都是前端

result[i][j]分別對應的是這個月需要幾個row以及列印出
星期所需的天數

Ks iT邦新手 4 級 ‧ 2019-06-20 18:03:55 檢舉
string code = result[i][j];
string[] splitCode = code.Split('&');

這樣試試看

因為.net core和.net framework版本的split好像有點不一樣,所以如果你使用"&"就會出現錯誤,可以改成'&'試試看

tenno081 iT邦新手 4 級 ‧ 2019-06-21 09:10:05 檢舉

可以了,萬分感謝

Ks iT邦新手 4 級 ‧ 2019-06-21 09:42:23 檢舉

不會,主要是你用錯方法了
你應該對字串來進行Split,而不是對陣列~

0
舜~
iT邦新手 1 級 ‧ 2019-06-20 12:03:39

如果沒理解錯您的意思~

DateTimeFormatInfo dtFormat = new System.GlobalizationDateTimeFormatInfo();
dtFormat.ShortDatePattern = "yyyy/M/d";


var DrEmpList = dto.Where(x =>
   !string.IsNullOrEmpty("2011/5/26&拉拉拉") && x.SCH_DATE == Convert.ToDateTime("2011/5/26&拉拉拉".Split('&')[0], dtFormat)
).FirstOrDefault();

參考資料:
C#语言之“string格式的日期时间字符串转为DateTime类型”的方法

小魚 iT邦高手 1 級 ‧ 2019-06-20 13:53:53 檢舉

如果空字串會出錯吧...

舜~ iT邦新手 1 級 ‧ 2019-06-20 16:06:20 檢舉

可用IsNullOrEmpty先避開或處理

tenno081 iT邦新手 4 級 ‧ 2019-06-20 16:17:18 檢舉

是DateTime

詳細的資料都在這裡

https://ithelp.ithome.com.tw/questions/10194134

0
小魚
iT邦高手 1 級 ‧ 2019-06-20 15:05:32

如果是要字串模糊搜尋可以用類似以下方法

list = OriginalData.Where(x => x.Contains("2019/6/20")).ToList();

我要發表回答

立即登入回答