public static void ExportListToCSV(string listTitle, string outputFilePath, string siteUrl, string[] fields)
        {
            using (var spoClient = new SharePointOnlineClient(siteUrl, Credentials.UserName, Credentials.Password))
            {
                var listItems   = spoClient.GetListItemsByTitle(listTitle);
                var outputLines = new List <List <string> >();

                // build and write header
                var headerValues = new List <string> {
                    "ID", "DisplayName"
                };                             // add default
                headerValues.AddRange(fields); // add non-default
                outputLines.Add(headerValues);

                // build and write outputLines
                foreach (var listItem in listItems)
                {
                    var fieldValues = new List <string> {
                        listItem[SharePointInternalFields.ID].ToString(), listItem.DisplayName
                    };                                                                                                           // add default
                    foreach (var field in fields)
                    {
                        fieldValues.Add(listItem[field]?.ToString());                           // add non-default
                    }
                    outputLines.Add(fieldValues);
                }

                // create the file
                CSVService.WriteCSV(headerValues, outputLines, outputFilePath);
            }
        }