iT邦幫忙

0

C# 迴圈值轉出!!!

各位IT前輩好,有一個C#問題想請教,最近被公司指派開始碰C#,以之前學PHP的邏輯~
C#想從foreach迴圈值轉出給foreach外的變數使用,是否可以跟圖片的php達到一樣的方式呢?
var myActions = new List();
var myStrings = new List() { "one", "two", "three" };

foreach (var str in myStrings)
{
myActions.Add(() => { Console.WriteLine(str); });
}
https://ithelp.ithome.com.tw/upload/images/20190719/20089833w0sUU8kQ1w.jpg

fillano iT邦超人 1 級 ‧ 2019-07-19 18:01:32 檢舉
myActions.Add(str);就好了吧?
小哈 iT邦新手 4 級 ‧ 2019-07-20 10:31:07 檢舉
前輩我在試試看,感謝您~

2 個回答

0
小魚
iT邦高手 1 級 ‧ 2019-07-19 18:02:18

不清楚你的問題是什麼,
不過C#所有的變數都要先宣告,
才能夠使用,
而且型別不能變.
就是所謂的強型別程式語言.

看更多先前的回應...收起先前的回應...
fillano iT邦超人 1 級 ‧ 2019-07-19 18:19:02 檢舉

而且List是泛型,不能不指定型別就直接用。參考:

https://dotnetfiddle.net/2YRy6Z

這樣才會動。

小魚 iT邦高手 1 級 ‧ 2019-07-19 18:47:55 檢舉

 

小哈 iT邦新手 4 級 ‧ 2019-07-20 10:37:36 檢舉

兩位前輩,我是覺得php While迴圈的資料,可以附屬給迴圈外的變數使用,一樣的做法想說C#該怎麼寫…

小魚 iT邦高手 1 級 ‧ 2019-07-20 16:36:36 檢舉

現在的方式不是就可以了嗎?
你點fillano大大給你那個連結.
不過C#的變數都是區域變數,
要在同一個區域才可以使用,
如果你要變成全域的話,
可以考慮用static,

A檔案

public class Share
{
   public static List<string> shareList {get;set;}
   Share()
   {
      shareList = new List<string>();
   }
}

B檔案

foreach (var str in myStrings)
{
   Share.shareList.Add(str);
}

不過其實方法很多種,
看情況怎麼用,
這種基礎的東西建議你還是去找本書或是比較有系列性的線上教學,
先把基礎打好再說,
我看有個 小山的C#教學(教學影片) 感覺蠻用心的,
雖然我沒有全部看過,
因為等我發現的時候已經幾乎都會了,
只有參考一些我需要的,
不過我想對你會有幫助的.

小哈 iT邦新手 4 級 ‧ 2019-07-20 18:04:01 檢舉

好的,感謝小魚大~
會努力的!!!

0
舜~
iT邦研究生 5 級 ‧ 2019-07-21 14:31:11

c# 的超多語法糖與涵式庫...習慣了後回php會覺得少東少西不方便.....
尤其是linq....

C#想從foreach迴圈值轉出給foreach外的變數使用,是否可以跟圖片的php達到一樣的方式呢?
可以呀~

var myActions = new List<string>();
var myStrings = new List<string>{ "one", "two", "three" };
foreach (var element in myStrings)
{
    myActions.add(element);
}

資料庫連線通常直接使用微軟封裝好的比較快又方便~

我要發表回答

立即登入回答