How to Change the Field Type for a List Column Using CSOM in SharePoint 2013 Online

Code Snippet 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Net;  
  5. using System.Security;  
  6. using System.Text;  
  7. using System.Threading.Tasks;  
  8. using Microsoft.SharePoint.Client;  
  9.   
  10. namespace CSOMOffice365  
  11. {  
  12.     class Program  
  13.     {  
  14.         static void Main(string[] args)  
  15.         {    
  16.             string userName = "[email protected]";  
  17.   
  18.             Console.WriteLine("Enter your password.");  
  19.             SecureString password = GetPassword();  
  20.   
  21.             // ClienContext - Get the context for the SharePoint Online Site  
  22.             // SharePoint site URL - https://c986.sharepoint.com  
  23.   
  24.             using (var clientContext = new ClientContext("https://c986.sharepoint.com"))  
  25.             {  
  26.   
  27.                 // SharePoint Online Credentials  
  28.                 clientContext.Credentials = new SharePointOnlineCredentials(userName, password);  
  29.   
  30.                 // Get the SharePoint web  
  31.                 Web web = clientContext.Web;  
  32.   
  33.                 // Get the list by Title  
  34.                 List list = web.Lists.GetByTitle("Custom");  
  35.   
  36.                 // Get a specific field by Title (TestCol - Single line of text)  
  37.                 Field field = list.Fields.GetByTitle("TestCol");  
  38.   
  39.                 // Update the field type to multi line of text  
  40.                 field.TypeAsString = "Note";  
  41.                 field.Update();  
  42.                 clientContext.Load(field);  
  43.   
  44.                 // Execute the query to the server  
  45.                 clientContext.ExecuteQuery();  
  46.   
  47.                 // Display the field name and type  
  48.                 Console.WriteLine(field.Title + " -- Field Type updated to : " + field.TypeAsString);  
  49.                 Console.ReadLine();  
  50.   
  51.             }  
  52.   
  53.         }  
  54.   
  55.         private static SecureString GetPassword()  
  56.         {  
  57.             ConsoleKeyInfo info;  
  58.   
  59.             //Get the user's password as a SecureString  
  60.             SecureString securePassword = new SecureString();  
  61.             do  
  62.             {  
  63.                 info = Console.ReadKey(true);  
  64.                 if (info.Key != ConsoleKey.Enter)  
  65.                 {  
  66.                     securePassword.AppendChar(info.KeyChar);  
  67.                 }  
  68.             }  
  69.             while (info.Key != ConsoleKey.Enter);  
  70.             return securePassword;  
  71.         }  
  72.     }  
  73. }   
Output