LINQ try to get a list of int from string – 如何使用Linq在String上取出所有數字出來

今天要為同事解決一個 在ASP.Net MVC [.Net]將String 轉成List of Int的問題

情況是這樣的:
公司的一個ASP.Net MVC 的Project 上..客戶會在 WebGrid上的checkbox上選擇需要的東西..
我的同事便寫了一個隱藏的field 每當客戶選擇或取消選項時..
他用了Javascript 來把數據append 到隱藏的field上
他便用”|” 來把數據分隔
但是我們還是要做一些Validation
避免數據有問題時..會令到這個程式碼/程序出現問題
E.G.
1|ab|| | 3 |4|
有空格或有字母時..當把數據轉到List Of Int時便會出現錯誤了

由於他工作放大假中..
所以我便要去解決他沒有解決的問題了
就是用.net去把這一個 String轉成 List of Int..

開頭我都有一些不知如何是好..
因為可以用一個比較簡單的方法..
但是可能要寫多很多的程式碼
就是先建立一個StringArray..
之後用Int.TryParse來把 成功認到是Int的 數據加進另一個List of Int上..
感覺不太好..

做了一些research 之後終於找到解決方法了:
解決方法:

我們可以嘗試使用LINQ 的方法去解決這個問題

  // Input
  string tempInput = "1|ab|| | 3 |4|";

  // This value is used for int.TryParse reference
  int tempVal=0;
  List intList = (from i in tempInput.Split('|').ToList()
                                          where int.TryParse(i, out tempVal)
                                          select  int.Parse(i)).ToList();
  int noOfInt = intList.Count();
  // Output number of integer recognised 
  Console.WriteLine("No of Int: " + noOfInt.ToString());
  
  for(int i = 0; i< intList.Count(); i++){
  	// Output the recognised integer one by one
  	Console.WriteLine(intList[i].ToString());
  }
  

Use Linq to extract List of Integer from string

Happy Coding

Linq compare 2 lists – .Net Check if Items exist on Both Lists – .Net如何在2個Lists 中找出相同的Item 項目

今天需要寫一個功能去看看2個 List of String 上有那些String 是2個Lists內都有的

做了一會research後 終於找到解決方法了

我們可以使用 ListIntersect 功能

Linq - to get matched item from 2 lists of string

E.G.

            	// Source List with String A,B,C,D,E
            			List listA = new List();
            listA.Add("A");
            listA.Add("B");
            listA.Add("C");
            listA.Add("D");
            listA.Add("E");

            			// List To Compare with String 1,A,4,E,5
            List listB = new List();
            listB.Add("1");
            listB.Add("A");
            listB.Add("4");
            listB.Add("E");
            listB.Add("5");

          			// Retrieve the List of String which appear on both List
            List matchList = listA.Intersect(listB).ToList();

            for (int i = 0; i < matchList.Count; i++)
            {
               			// Output the list of matched string
                Console.WriteLine(matchList[i]);
            }

Happy Coding

‘bower’ is not recognized as an internal or external command

今天嘗試使用 bower來安 “ngCordova” 時出現以下的錯誤信息
在之前的網誌裡有和大家分享介紹..如果要在Ionic Framework中使用 “ngCordova
是要用 bower來安裝的

Ionic troubleshooting – ngcordova Failed to instantiate module starter due to

bower install -SF ngCordova

“‘bower’ is not recognized as an internal or external command,
operable program or batch file.

原因是因為在這部電腦上沒有安裝 Bower

解決方法十分簡單
我們可以使用NodeJsCommand Prompt 之後輸入NodeJs指令來安裝
- g的意思 Install Globally 是給所有使用者用

解決方法

npm install -g bower

Install Bower via NodeJs npm
Hope you find it useful

Ionic troubleshooting – ngcordova Failed to instantiate module starter due to

今天嘗試跟著 ngCordova 的例子和文章
http://ngcordova.com/docs/
嘗試使用ngCordova plugins/Library/ wrapper 來開發一些 Android 程式
我在他的”Custom Build” 頁面上下載了我需要的ngCordova Plugins
ngCordova Custom Build

之後自行在我的ionic 資料夾上建立了 “lib/ngCordova/dist” 資料夾來儲存這個js 檔

之後在”js/app.js“上登記了 ‘ngCordova

E.G.

angular.module('starter', ['ngCordova', 'ionic', 'starter.controllers'])

Add ngCordova Module to Ionic's app.js
誰不知當我在preview的的Ionic Application時出現空白頁面

在檢查Google Chrome Console上看到以下的錯誤信息

Uncaught Error: [$injector:modulerr] Failed to instantiate module starter due to:
Error: [$injector:modulerr] Failed to instantiate module ngCordova due to:
Error: [$injector:nomod] Module ‘ngCordova’ is not available! You either misspelled the mod……1)

[$injector:modulerr] Failed to instantiate module starter due to

做了一會research之後發現..
原來我們需要使用 bower來安裝 ngCordova 才能使用的

解決方法

我們可以在這個IonicApplication 資料來上
NodeJsCommand prompt輪入以下 指令來安裝

bower install -SF ngCordova

Bower Install ngCordova

如果嘗試安裝 Bower時出現問題..,可以嘗試參考以下網誌..看看能不能解決

‘bower’ is not recognized as an internal or external command

安裝完成後再次執行這個Ionic Application

ionic serve

Ionic Application 成功在Browser上顯示正常資訊了
Ionic Application with ngCordova Plugins

Hope it solve your issue

Google Play Store Free song of week – Google Play 商店免費音樂[每星期都有的]

在無意之中發現Google Play Store / Google Play 商店
每星期都會有一些音樂Free Song of the week上推廣

有好東西一定要和大家分享

有興趣的朋友可以 Bookmark這一個連結
https://play.google.com/store/music/collection/deal_of_the_day?hl=zh-hk
Google Play Store - Free Song of the Week

在這頁面的歌會在這個星期免費購買/加入到大家Google Music音樂庫

大家可以在Android 手機 / 平板電腦 / IPhone / IPad  或在Browser/瀏覽器上聽

他也有一個選項給大家下載歌曲…
大家要留意..每一首歌只可以下載2次
Google Music - Download songs

[雖然有些音樂不太有名..
但是數星期前有幸地可以下載了一首Michael JacksonBillie Jean - 在 Michael Jackson Album Number Ones上的歌]

Enjoy

Ionic platform add android Error: spawn ENOENT

今天嘗試跟著Ionic Framework 的時
http://ccoenraets.github.io/ionic-tutorial/index.html
當我嘗試使用ionic platform 指令加入Android Platform

ionic platform add android

出現以下的錯誤信息
events.js:72
throw erl // Unhandled ‘error’ event
Error: spawn ENOENT

Ionic Framework - Error: spawn ENOENT

這個錯誤是在我更新了Ionic Framework CLI 之後才出現的

How to Update Ionic CLI- 如何更新Ionic Framework CLI

做了一會research之後
找到了暫時的解決方法

解決方法:
我們只需要暫時安裝另一個版本的 Ionic Framework CLI便可以解決這個問題

E.g. 我安裝了 ionic 1.1.9 beta1
NodeJscommand prompt 上輸入以下指令便可以了

npm install -g ionic@1.1.9-beta1

Install Ionic Framework 1.1.9 beta 1

安裝完成後..再次執行

ionic platform add android

ionic platform 指令加入Android Platform
出現”Platform android already added” 應該是正常的..因為我之前嘗試使用cordova 指令來加入Android Platform 來解決”Error: spawn ENOENT” 的問題…

Ionic Framework:  Platform android already added

之後再用 ionic 指令來Build 這個程式

ionic build android

最後使用Ionic 指令嘗試在 Android Emulator上 執行這個Ionic Hybrid App

ionic emulate android

Ionic Tutorial run on Android Emulator

Hope it solve your issue.

How to update Ubuntu – Linux System Update – 如何更新Linux [Ubuntu]

在登入在Microsoft AzureLinux Ubuntu VM的時候
通常在SSH 到 那個Ubuntu VM時出現一些訊息
E.G. Ram/ CPU/ 和硬碟的使用量等等

有時亦都會看到有多小Package可以更新
E.G.
Number of Linux Package can be update

那麼如何更新Linux [Ubuntu]系統呢?

解決方法
我們可以先執行

apt-get update 

以確保我們大最新的Update資訊
之後我們可以執行

sudo apt-get dist-upgrade 

的指令到更新我們的Linux 系統
sudo apt-get dist-upgrade - upgrade Linux system

之後Linux會出現一些資訊
說有那些新的Package會被更新
那些會是新安裝的
還有安裝所需的硬碟空間等等..
會問你是否希望繼續安裝
Are you sure you want to continue to update Ubuntu packages
輸入”y“後按”Enter” 便會自己安裝了

這了一會便更新完成
Ubuntu Linux Update completed

可能我是一個Windows思考的人
所以還是重新啟動電腦比較安心一點

在Linux上重新啟動系統.我們可以執行以下的指令

sudo reboot -restart

Hope you find it useful