iT邦幫忙

0

請教ASP.NET的LINQ查詢語法和其他語法

  • 分享至 

  • xImage

各位大大好!小弟,最近剛學asp.net core mvc,買了一本<ASP.NET Core 7 MVC 範例實戰演練>,作者:奚江華我目前做ch02範例!
我遇到一些問題,想請教各位大大!

問題1:請教LINQ查詢這段,這是甚麼語法呢?最基本語法是甚麼呢?

//以LINQ查詢泛集合
var friendsQuery = from f in friends where f.Country == "USA" || f.Country == "Korea" select f;

問題2:下面程式碼,我的VisualStidio 2022的Models/Frinde.cs的Name和Country出現波浪底線要 請問string後面加?嗎?,為甚麼要加[?]呢

public class Friend
{
    /*
     Models/Friends.cs為了Controllers/CSharpBasisController的IActionResult
     的函式內建立Friend物件和List集合
     */
    public string Name { get; set; }
    public string Country { get; set; }

}

問題3:

下面程式碼是正常List宣告物件語法

List<Friend> friends = new List<Friend>
{
    new Friend { Name = "Rose",Country = "USA"},
    new Friend { Name = "David", Country = "Japan" },
    new Friend { Name = "John", Country = "USA" },
    new Friend { Name = "Bob", Country = "Italy" },
    new Friend { Name = "Johnson", Country = "Thailand" },
    new Friend { Name = "Cindy", Country = "Japan" },
    new Friend { Name = "Lucy", Country = "Korea" },
    new Friend { Name = "Angel", Country = "Italy" },
    new Friend { Name = "Maya", Country = "Thailand" },
    new Friend { Name = "Max", Country = "Korea" }
};

但Visual Studio2022在上面程式碼..提示,然後我照提示,為甚麼要改成下面程式碼呢?

//集合式初始化設定式(新寫法)
List<Friend> friends = new()
{
    new Friend { Name = "Rose",Country = "USA"},
    new Friend { Name = "David", Country = "Japan" },
    new Friend { Name = "John", Country = "USA" },
    new Friend { Name = "Bob", Country = "Italy" },
    new Friend { Name = "Johnson", Country = "Thailand" },
    new Friend { Name = "Cindy", Country = "Japan" },
    new Friend { Name = "Lucy", Country = "Korea" },
    new Friend { Name = "Angel", Country = "Italy" },
    new Friend { Name = "Maya", Country = "Thailand" },
    new Friend { Name = "Max", Country = "Korea" }
};

不好意思!造成各位大大誤會!我昨天有實作出書中範例,版型畫面被我改掉!我是做完後,有不懂語法才請教各位大大,我就附上自己練習成果,照片如下!下次我在it邦幫這裡發問問題會附上練習成果!請大家多多包涵和諒解!
https://ithelp.ithome.com.tw/upload/images/20240201/20145992S8rtjAXUOg.jpg

/images/emoticon/emoticon04.gif/images/emoticon/emoticon17.gif

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2024-02-01 08:32:48 檢舉
1. 你都說那是LINQ了,當然是LINQ啊...
https://ithelp.ithome.com.tw/articles/10194251
https://learn.microsoft.com/zh-tw/aspnet/core/mvc/views/razor?view=aspnetcore-8.0

2. 不要用截圖的,根本看不清楚...

你買書,書上應該都會介紹用到的程式碼,耐著性子好好看吧...
謝謝大大!我下次,還是問一下chatgpt好了,不好意思造成你們困擾!我把照片換成程式碼,不好意思,造成你的誤會
問題1:
LINQ就是LINQ,如果你有寫過SQL的話,可以更快速理解,如果沒有也沒關係,就慢慢學,多寫就會了。

問題2:
看你模型的資料會不會有Null的可能性阿... (小作品的話你可以先加,反正我是都會加),我盡量都會讓這些提醒消失,避免後續一堆...

問題3:
感覺你要多摸一下C#在學,這個問題是C#的基礎喔!

以上小小建議,然後建議你多花一點時間做一下功課,例如多用ChatGPT做查詢之類的,不然出社會這會被噴爛...
謝謝大大!我下次,還是問一下chatgpt好了,不好意思造成你們困擾!
froce iT邦大師 1 級 ‧ 2024-02-01 09:04:09 檢舉
初學者不要都去問chatgpt,chatgpt問到某些東西他沒資料會說謊,而初學者根本沒有辨別的能力,而且chatgpt不太能察覺到你真正的問題,有些人的問題表面是A,但根本卻是B,chatgpt只能答A讓你走彎路走到盡頭而已。
謝謝大大!因為小弟!第一次接觸ASP.NET,沒有學過LinQ語法,太基礎語法,我會上網自己查詢,不好意思,造成大家誤會,請大家見諒!
@froce 原來嗎!? 我之前有遇過一次,我在詢問Bootstrap套件問題的時候 ,突然一直發生鬼打牆,問A達B,我還想說是我問題不夠明確...。
後面真的是靠Google,查到網路大神幫忙才解決...
感謝你,我也來改改我的查詢順序。
謝謝!@天天好日子大大的分享,我也改變查詢順序!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
純真的人
iT邦大師 1 級 ‧ 2024-02-01 08:38:54

LinQ SQL

var friendsQuery = from f in friends where f.Country == "USA" || f.Country == "Korea" select f;

跟MSSQL對照~

select f.* from friends as f where f.Country = 'USA' or f.Country = 'Korea'

謝謝大大!

2
Yaowen
iT邦研究生 4 級 ‧ 2024-02-01 10:21:09
var friendsQuery = friends.Where(f => f.Country == "USA" || f.Country == "Korea");

直接學 Lambda 表示式 會比較好搞懂

還有你應該要先買一本 C# 的書先把基本語法搞懂才對

janlin002 iT邦好手 1 級 ‧ 2024-02-01 10:24:05 檢舉

推,大神!

謝謝大大!

我要發表回答

立即登入回答